: Moves down to a lower level, describing how high-level languages are implemented on hardware-like register machines, covering compilation and memory management.
: Teaches how to design new programming languages to solve specific problems. This includes building a "meta-circular evaluator"—an interpreter for a language written in that same language. Structure and Interpretation of Computer Programs
: Examines different ways to model complex systems, introducing the concepts of local state, objects, and the challenges of dealing with "time" in computational models (e.g., concurrency and stream processing). : Moves down to a lower level, describing
: Discusses how to combine simple data into complex "compound data" structures while maintaining clear boundaries through data abstraction. introducing the concepts of local state
The book is organized into five major sections that progress from basic elements to the building of entire computing systems: