Giter Club home page Giter Club logo

nolang's Introduction

Nolang

Nolang is experimental programming language.

It bases on idea of "pure" programming, where one has no side effects and variables are by default immutable.

Please read pure for more info.

Design rules

  • No classes (no OOP)
  • No GC
  • Automatic memory management, similar to Rust
  • Develop friendly
  • Strong types
  • Immutable by default
  • No side effects

Reference compiler

This repository contains reference compiler and it's implementation.

General parser has grammar defined in BNF. Compiler generates proper AST, which can be passed to next step. "Next step" here means code generator or interpreter.

Currently only supported and targeted code generator is plain C backend. Thus code is transpiled to C code, and then compiled with any C compiler to native binary.

Other code generator backends may be possible in future.

Building

Get Meson and Ninja.

Clone git repository, cd into it and then:

mkdir build
cd build
meson ..
ninja

To compile single example and run:

../compile.sh ../examples/hello.nolang
./hello.out

To run test suites:

ninja test

To build and run all examples do (currently majority not passing):

../test.sh

Extra dependencies

For development:

License

MIT, see more LICENSE

nolang's People

Contributors

jroivas avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

nolang's Issues

Request for closing this project

If this project has already been suspended, we would like you to give us the domain nolang.com.
We want to create a product called nolang, so please help us in our great decision.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.