Skip to content

ng-lang/ng

A NostalGic (NG) Programming Language

build Codacy Badge Codacy Badge codecov

NG is a static-typed, multiple paradigm programming language designed for efficiency and productivity.

Features

  • Minimum mutability required
  • Minimum runtime overhead
  • Let others rewrite everything and bind them
  • Direct hardware mapping

Getting Started

Prerequisites

  • C++ Compiler: A C++23 compatible compiler (e.g., GCC, Clang, MSVC).
  • CMake: Version 4.0 or higher.
  • Build Tool: Make or Ninja.

Building the Project

  1. Clone the repository:

    git clone https://github.com/ng-lang/ng.git
    cd ng
  2. Create a build directory:

    mkdir build
    cd build
  3. Configure the project with CMake:

    cmake -GNinja ..
  4. Build the project:

    ninja

Running the Interpreter

After building the project, you can use the ngi interpreter to run NG scripts.

./ngi ../example/01.id.ng

Documentation

Roadmap

Core Language Features

  • Robust error handling (e.g., try/catch or a Result type)
  • Pattern matching
  • Closures/Lambdas
  • Generics
  • Enums
  • Compile to Native
  • Naive Type Checking
  • Bytecode Based Runtime - ORGASM (Organized Assembly)

Standard Library

  • Comprehensive file I/O module
  • Advanced string manipulation module (e.g., regex)
  • Rich collections library (e.g., hashmaps, sets)
  • Process management module
  • Networking module (e.g., HTTP)
  • Date and time module

Tooling and Ecosystem

  • Package manager
  • REPL (Read-Eval-Print Loop)
  • Automatic code formatter
  • Linter
  • Debugger

Community

We welcome contributions and feedback from the community! Here are a few ways to get involved:

Contributing

We welcome contributions from everyone. Please read our Contribution Guide to get started.

About

A NostalGic Programing Language

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages