By building a number of mental models for computation, this book introduces the reader to the fundamental concepts of computation.
The program examples in earlier editions were written in the programming language Scheme. The second edition has been updated for JavaScript in this new version.
Using the JavaScript package sicp made available via the MIT Press website, the programs in the book run on any JavaScript implementation that complies with the ECMAScript 2020 specification.
Programming ideas that are common to all current high-level programming languages are covered in the book's first three chapters. Significant revisions were needed for Chapters 4 and 5, which employed Scheme to create language processors for Scheme. New information is presented in Chapter 4, including a definition of program parsing. A subtle stack discipline is introduced by the evaluator and compiler in chapter five to support return statements, a key component of statement-oriented languages, without sacrificing tail recursion.
Over the past ten years, the book Structure and Interpretation of Computer Programs has had a significant impact on computer science curricula. The entire text has been revised in this eagerly anticipated update.
The majority of the key programming systems, including the interpreters and compilers, have new implementations in this book, and the authors have made numerous minor adjustments as a result of their experience teaching the course at MIT since the first edition was released.
The central role that various approaches to handling time play in computational models has been highlighted by a new theme, which includes objects with state, concurrent programming, functional programming, and lazy evaluation, and nondeterministic programming. Numerous new exercises are included, as well as new example sections on numerical programming applications of stream processing and higher-order graphics procedures.