Lulu Press, 2019 - 479 pages - 59 figures - 6" x 9" format - CC0 code

Order a hardcover book at
Order a paperback book at
Order a PDF copy at
Get the source code from the book
Mission Statement (PDF)
Read a few pages (PDF)

This book delves straight into the internals of an interactive LISP system. The complete source code is presented and discussed in great detail. Emphasis is on compilation to abstract machine code, but lots of topics will be discussed at length, including:

LISP data objects, syntax analysis, closure conversion, lambda lifting, operational semantics, bytecode generation, bytecode interpretation, primitive functions, bootstrapping LISP code, macro expansion, lexical and dynamic binding, tail call elimination, garbage collection, non-local exits, the read-eval-print loop (REPL), reading and printing LISP objects, input and output ports, error handling, heap image files, etc ...

The C and LISP code in this book is comprehensible rather than clever. Lots of design decisions, background information, and historical tidbits are provided.

In the final part of the book, compilation of LISP-N, compilation to stand-alone binaries, and compilation to native machine code are outlined.

This book is not an entry-level text! Familiarity with basics of computation, the C programming language, and at least one dialect of LISP is required.

contact  |  privacy