Generated by GPT-5-mini| Structure and Interpretation of Computer Programs | |
|---|---|
| Name | Structure and Interpretation of Computer Programs |
| Authors | Harold Abelson, Gerald Jay Sussman |
| Country | United States |
| Language | English |
| Subject | Computer science, Programming languages |
| Publisher | MIT Press |
| Pub date | 1985 |
Structure and Interpretation of Computer Programs is a foundational textbook on programming and computer science pedagogy authored by Harold Abelson and Gerald Jay Sussman with Julie Sussman, associated with the Massachusetts Institute of Technology. The work synthesizes ideas from John McCarthy, Alan Turing, Alonzo Church, Edsger W. Dijkstra, and Donald Knuth to present a formal yet practical approach linking language design, interpreter construction, and algorithmic thinking. Its influence extends across academic curricula at institutions such as Massachusetts Institute of Technology, Stanford University, Carnegie Mellon University, Harvard University, and University of California, Berkeley.
The book frames programming as the design of abstractions and articulates relationships among interpreters, compilers, and machine models while drawing on contributions from John McCarthy's Lisp, Guy L. Steele Jr., Alonzo Church, Alan Turing, and Marvin Minsky-era research. Chapters introduce recursive procedures and higher-order procedures with examples referencing the work of Haskell Curry, Peter Landin, Christopher Strachey, Robin Milner, and John Backus. Pedagogically, it emphasizes metalinguistic abstraction informed by methods used at Massachusetts Institute of Technology and discussed at conferences like ACM SIGPLAN and International Conference on Functional Programming.
Development began in the late 1970s and early 1980s amid curriculum reforms influenced by educators and researchers including Seymour Papert, Marvin Minsky, Noam Chomsky, and Jerome Bruner. The text reflects programming-language research trajectories linked to MIT AI Lab, interactions with practitioners from Bell Labs, and dialogues with theorists such as John McCarthy, Alan Kay, and Ivan Sutherland. Early drafts circulated among faculty at Massachusetts Institute of Technology and were shaped by lectures that paralleled seminars at Stanford University and workshops sponsored by National Science Foundation and Defense Advanced Research Projects Agency.
Core themes include procedure abstraction, data abstraction, modularity, and the interplay of interpreters and compilers, drawing on formalism from Lambda calculus, semantics influenced by Christopher Strachey and Dana Scott, and complexity notions articulated by Alan Turing and Andrey Kolmogorov. The text develops the metacircular evaluator concept with lineage tracing to work at MIT AI Lab and to implementations related to Lisp and Scheme practitioners such as Guy L. Steele Jr. and Richard Gabriel. It uses examples that intersect with systems topics studied by Dennis Ritchie, Ken Thompson, and John Backus and discusses symbolic computation traditions associated with John McCarthy and Marvin Minsky.
The book uses the Scheme dialect to demonstrate interpreters, compilers, and virtual machines, engaging with implementers like Guy L. Steele Jr. and invoking comparisons to Lisp traditions pioneered by John McCarthy. The implementation material connects to runtime and compilation concerns addressed by Donald Knuth in algorithm analysis and to virtual machine concepts discussed by researchers at Bell Labs and Xerox PARC such as Alan Kay and Chuck Geschke. Supplemental code and lecture recordings were produced at Massachusetts Institute of Technology and circulated in communities including ACM and IEEE.
Academically, the book shaped introductory courses at Massachusetts Institute of Technology, Stanford University, Princeton University, University of Cambridge, and University of Oxford, influencing educators like Hal Abelson (author), Gerald Jay Sussman (author), and contemporaries at Carnegie Mellon University and Harvard University. Its methodological stance influenced language design discussions involving Guy L. Steele Jr., Robin Milner, and Simon Peyton Jones, and informed software engineering practices discussed by Fred Brooks and Grady Booch. The work has been cited in discourse at venues such as ACM SIGPLAN Conference on Programming Language Design and Implementation and in retrospectives at International Conference on Functional Programming.
Original editions were published by MIT Press with subsequent printings and a 1996 reissue; supplementary lecture recordings and code distributions were produced at Massachusetts Institute of Technology and disseminated through archives associated with MIT OpenCourseWare, ACM Digital Library, and institutional repositories at Stanford University and Carnegie Mellon University. Later educational materials and annotations have been created by scholars at Harvard University, University of California, Berkeley, and contributors connected to Free Software Foundation initiatives.
Category:Computer science textbooks