Two Lisp compilers written in Lisp

A Lisp compiler to ARM written in Lisp

A Lisp compiler to RISC-V written in Lisp

Two native-code compilers written in the uLisp dialect that targets microcontroller-class machines. Both use a combination of stack and register allocation to get efficiency – and they’re very efficient, with the compiled versions sometimes being 100x faster than the interpreted code.

These are not complete ports, and indeed not on a complete or standard underlying Lisp implementation. But it’s still fascinating to see how simple it is, built as a recursive-descent tree-walker that emits assembler directly. With careful initial design even a compiler with no optimisation pathways can still get great speed-up over an interpreter.

(Part of the series An annotated Lisp bibliography.)