Skip to content

RigCLang/rigc-lang

Repository files navigation

RigC programming language

⚠ Note: this language is in a very early stage of the development and some features will be missing. This README contains overview of our goals.

A prototype of RigC programming language - the better and simpler C++ language.

👋 Hello, World!

Hello World Demo

⏳ Progress

We're working hard to publish the first usable alpha release. Consider helping us by contributing.

  • Basic language constructs
    • Variables
    • Functions
    • Loops
    • Classes
    • Modules
    • Operator overloading
    • Conversions
  • Implement advanced language constructs
    • Basic templates
    • Basic concepts
  • First public alpha release

🚀 Getting started

This language is pre-alpha version. You can download the source code and compile it using pacc package manager.

First let it automatically install the dependencies:

pacc install

Then run the build command (see build command flags, you might want to run it with multiple cores, or in different configuration)

pacc build

See pacc documentation here.

Running RigC code

Right now the code can only be run using our virtual machine using:

vm <script file>

The vm command will be located in the bin/<platform> directory after you build it.

⚽ Goals

  1. To create an easier alternative to C++ offering similar features.
  2. Abandon C compatibility.
  3. Use module-based code splitting from the beginning.
  4. Use concept-based metaprogramming from the beginning.
  5. Simplify the syntax
  6. Use unified tooling for all platforms.

This goals feel unreachable but sky is the limit so lets see what we can achieve.

Platforms

Right now RigC can only be run by our virtual machine (VM/ folder). Plans for future include:

  • writing JIT compiler for our VM
  • using LLVM IR as an intermediate language to compile to a native code

🧱 Resources

You might want to install Visual Studio Code extension.

⭐ Features overview

if and else

Hello World Demo

while loop

Hello World Demo

Classes

Hello World Demo

Modules

Hello World Demo

Metaprogramming

Hello World Demo

// TBD