polybuildr / balloon-lang

The Balloon programming language and interpreter.
Mozilla Public License 2.0
17 stars 1 forks source link
balloon balloon-lang interpreter language

The Balloon Programming Language

Build Status

This is a very experimental project.

This is an attempt to build a general-purpose interpreted programming language (later with a focus on back-end web programming) that attempts to allow the programmer to choose their own guarantees for things like type safety.

This project is written in Rust. If you're unfamiliar with Rust, you should take a look at the Rust docs.

Prospective contributors, please take a look at the Contributors' Guide.

(Also, for the motivation behind this language, take a look at the introductory blog post, and a more detailed blog post.)

Usage

Balloon is currently not available on crates.io. You will need to build it yourself using Cargo. (You could also download one of the prebuilt binaries from this project's release page.)

usage: balloon [[MODE] FILE]

where MODE is one of:
--run      (default) runs the file
--check    type check the file
--parse    only parse the file, don't run it

Not passing any arguments to balloon will start the REPL.

(There is also an (even more) experimental LLVM backend that is not documented here.)

Code examples

Examples of valid code can be found by looking at tests in the tests/run-pass directory.