|
Project Information
|
Halide is an attempt to build a Common Lisp subset interpreter in Java. As a self-education project, as many components of the interpreter will be built from scratch, relying on as few external libraries as can be gotten away with. Halide is constituted by a series of modules. A REPL stands between the user and the parser, gathering S-expressions. A parser takes this expression and attempts to build an expression tree from it. The tree is passed on to an interpreter, which iterates through the tree, in order, and resolves every nested S-expression, until a return value is arrived upon. As expressions are isolated for evaluation, they are passed to a virtual machine, which holds a state and a collection of built-in functions. Expressions are executed, and their spot in the total expression replaced with their result. The ultimate goal is to have an interpreted Lisp that implements a subset of Common Lisp, enough to demonstrate that the language is no longer non-trivial. This project is released under the New BSD License. Do with it what you will. |