Skip to main content
Chaptra
Cover of Lisp in Small Pieces

Lisp in Small Pieces

Written by Christian Queinnec

Not rated yet — tap a star to review it

540 pages, about 11 hours of reading

Chaptra reads alongside you — AI insights, chapter breakdowns and reader discussions for every book. Join free

About this book

This is a comprehensive account of the semantics and the implementation of the whole Lisp family of languages, namely Lisp, Scheme and related dialects. It describes 11 interpreters and 2 compilers, including very recent techniques of interpretation and compilation. The book is in two parts. The first starts from a simple evaluation function and enriches it with multiple name spaces, continuations and side-effects with commented variants, while at the same time the language used to define these features is reduced to a simple lambda-calculus. Denotational semantics is then naturally introduced. The second part focuses more on implementation techniques and discusses precompilation for fast interpretation: threaded code or bytecode; compilation towards C. Some extensions are also described such as dynamic evaluation, reflection, macros and objects. This will become the new standard reference for people wanting to know more about the Lisp family of languages: how they work, how they are implemented, what their variants are and why such variants exist. The full code is supplied (and also available over the Net). A large bibliography is given as well as a considerable number of exercises. Thus it may also be used by students to accompany second courses on Lisp or Scheme.

Read it with a club

Small groups reading the same books and talking as they go.

All clubs
A room of people talking around a long table

News

  • 1 member
  • 1,813 discussions
  • Active 15h ago

Read Lisp in Small Pieces alongside people who are reading it too.

Chaptra Prime — paid clubs, every club feature, and unlimited reading support, for $5 a month or $60 once.

See Prime

Reading guide

Themes, characters and key ideas in Lisp in Small Pieces, written by Chaptra AI.

  • about 200 hours
  • advanced
  • Rigorous
  • Foundational
  • Analytical

Christian Queinnec's "Lisp in Small Pieces" is a definitive and comprehensive exploration of the semantics and implementation of the Lisp family of languages, including Lisp and Scheme. The book systematically builds understanding, starting from a foundational lambda-calculus and progressively enriching it with features like continuations, side-effects, and multiple namespaces, while also introducing denotational semantics. It delves into practical implementation techniques, detailing 11 interpreters and 2 compilers, covering precompilation strategies, compilation to C, and advanced topics such as dynamic evaluation, reflection, macros, and objects. Serving as a crucial reference, it provides both theoretical rigor and practical insights, complete with code, exercises, and an extensive bibliography, making it suitable for advanced students and researchers in programming language design.

Not applicable in the traditional literary sense. The book's value lies in its structured explanations, formal definitions, and detailed code examples rather than memorable phrases or narrative dialogue.

Key themes

Programming Language Semantics
The book meticulously explores how the meaning and behavior of programming language constructs are formally defined. It starts from simple evaluation functions and progressively introduces formalisms like lambda-calculus and denotational semantics to rigorously specify what Lisp programs do. This theme is central to understanding the mathematical underpinnings of language design.
Interpreter and Compiler Design
A core focus of the book is on the practical aspects of implementing programming languages. It details various strategies for creating interpreters and compilers, illustrating the engineering challenges and solutions involved in translating high-level code into executable forms. This includes different levels of optimization and transformation.
Functional Programming Principles
While covering the broader Lisp family, the book deeply explores concepts central to functional programming, such as first-class functions, closures, immutability (where applicable), and especially continuations. It demonstrates how these principles enable powerful abstractions and elegant solutions to complex control flow and state management problems.

Worth discussing

How does the systematic construction of a language from lambda-calculus, as presented in the book, illuminate the core principles of programming language design?

Chapter-by-chapter breakdowns, character arcs and the full thematic analysis come with a free account.

Discussions

No one has started one yet

Join

Questions this book opens up

No discussions yet

Be the first to start a discussion about this book!

Sign up to start the discussion

Reviews

No reviews yet

Be the first to review this book!