The exact title of this book stands for "Lisp in Small Pieces". This book
covers Lisp, Scheme and other related dialects, their interpretation,
semantics and compilation. To sum it up in a few figures:
500 pages,
11 chapters,
11 interpreters and
2 compilers.
This book was first written in French. It was published by
InterÉditions, under title "Les Langages Lisp". See
exact bibliographic reference
or cover page . Unfortunately this
edition is now out of press. A new (slightly revised) edition will be
issued by February 2007. It will bear a new title "Principes
d'implantation de Scheme et Lisp". See Paracamplus for more details.
Chapter 2: Name spaces and Recursion
Some new interpreters introducing lexical and/or dynamic binding,
single or multiple namespaces, various brands of global environments.
Chapter 3: Escape, Continuation
A bunch of control operators (catch/throw, block/return-from,
unwind-protect, call/cc) all explained through an interpreter
written in OO style.
(eval exp env continuation)
Chapter 4: Side-effect
Assignment, data mutation and equality explained through another
interpreter where everything is coded by lambdas.
(eval exp env cont memory)
Chapter 5: Denotational Semantics
A simple currying of the previous interpreter which now appears as
((eval exp) env cont mem)
Numerous variants such as dynamic binding, global environments.
Chapter 6: Fast interpretation
Precompile expressions to speed up interpretation. Introduce
runtime representations of environment and continuations through
various interpreters such as
Chapter 7: ByteCode compilation
Compile expressions into byte-code instructions; invent registers,
PC, stack and the like with still another compiler/interpreter
Chapter 9: Macros
Everything you want to know on macros, macroexpansion, hygien etc.
in relation with (separate) compilation and interpretation. This
chapter contains another macro system.