Abelson and Sussman's classic Structure and Interpretation of Computer Programs
teaches readers how to program by employing the tools of abstraction and modularity. The authors' central philosophy is that programming is the task of breaking large problems into small ones. The book spends a great deal of time considering both this decomposition and the process of knitting the smaller pieces back together.
The authors employ this philosophy in their writing technique. The text asks the broad question "What is programming?" Having come to the conclusion that programming consists of procedures and data, the authors set off to explore the related questions of "What is data?" and "What is a procedure?"
The authors build up the simple notion of a procedure to dizzying complexity. The discussion culminates in the description of the code behind the programming language Scheme. The authors finish with examples of how to implement some of the book's concepts on a register machine. Through this journey, the reader not only learns how to program, but also how to think about programming.
--This text refers to an out of print or unavailable edition of this title.
About the Author
Hal Abelson is Class of 1922 Professor of Computer Science and Engineering at Massachusetts Institute of Technology and a fellow of the IEEE. He is a founding director of Creative Commons, Public Knowledge, and the
Free Software Foundation. Additionally, he serves as co-chair for the MIT Council on Educational Technology.
Gerald Jay Sussman is Panasonic Professor of Electrical Engineering at MIT. He is the coauthor (with Hal Abelson and Julie Sussman) of Structure and Interpretation of Computer Programs
(MIT Press). Sussman and Wisdom are also coauthors of Functional Differential Geometry
--This text refers to the