A set of minimal LISP1 implementations.
-
The
schemefolder contains a minimal implementation of scheme that supports the most important primitives. Currently only supports integer type for numbers. This implementation takes the homoiconic approach outlined in SICP's metacircular evaluator, in which procedures are represented as lists tagged with 'procedure. This allows some interesting differences over other C implementations where procedures are stored as C-style data structures. Due to lack of a garbage collector, it's relatively quick but can be a major memory hog (e.g. when calculating the 30th fibonacci number using recursion) -
The
scheme-gcfolder contains a version of theschemeinterpreter with a garbage collector
To build and run either of the projects, cd into the folder and run ./configure && make && ./build/microlisp
