Overview of Editions

First edition (1984)

Structure and Interpretation of Computer Programs (SICP) by Harold Abelson and Gerald Jay Sussman with Julie Sussman was developed from lecture material for the introductory computer science course of the same name at the Massachusetts Institute of Technology (MIT). The book uses Scheme (a dialect of Lisp), which Sussman co-designed with Guy L. Steele Jr. It teaches how to build complex programs from simple primitives by combination and abstraction.

The first edition is out of print. A scan can be borrowed from the Internet Archive.

Second edition (1996)

The second edition is a thorough revision. The text was refined throughout from teaching experience, and the book's major programming systems were redesigned, including the interpreters, the register-machine simulator, and the compiler. The result was that the course could no longer be covered in a single semester.

JavaScript edition (2022)

The JavaScript edition is an adaptation by Martin Henz and Tobias Wrigstad, begun at the National University of Singapore in 2008 and used in NUS's introductory course CS1101S from 2012. The adaptation stays close to the original, except in chapter 4: JavaScript programs are not directly data structures the way Scheme programs are, so the chapter now introduces program parsing.