RookieLisp is the result of a seminar I attended at my university in 2011. The seminar was about design and implementation of advanced programming languages. Each student in the seminar had to develop a simple Lisp interpreter in the programming language of his choice.
I developed mine in C++ which included the development of a simple garbage collector. RookieLisp is still far away from optimum (regarding performance and completeness) but it features the most common functions of a basic Lisp interpreter.
- Closures (I know… a ‘must have’)
- Implements Baker’s Threadmill algorithm for garbage collection
- The ‘let’-function does not evaluate expressions in the binding list (simple bug)
- Too deep recursions may cause a stack overflow (need to reimplement all functions in continuation passing style)
- Binding lookup is very slow since it does not use hashtables but simply steps through a linked list and compares symbols
Download (source code + precompiled binaries): RookieLisp_Lawitzki_22545.zip