Calc is a proof of concept to implement a simple arithmetic language interpreter with JIT compilation, using either LLVM or a more low-level JIT based on GNU Lightning.
A fun weekend project, if you ask me!
You need LLVM and GNU Lightning installed. On Mac OSX:
$ brew install llvm
Unfortunately the version of Lightning in Homebrew is broken. Download and install lightning from its mirror git repository.
Now:
$ git clone git://github.com/txus/calc.git calc
$ cd calc
$ make
You get the calc
executable.
Using the AST-walking interpreter:
$ ./calc "3 * (4 + 5)"
Using the LLVM JIT compiler:
$ ./calc --llvm "3 * (4 + 5)"
Using the lower-level, GNU-lightning based JIT compiler:
$ ./calc --jit "3 * (4 + 5)"
It's just integers, these operators: + - * /
, and parentheses for precedence.
This was made by Josep M. Bach (Txus) under the MIT license. I'm @txustice on twitter (where you should probably follow me!).