Cover image for Structure and interpretation of computer programs
Title:
Structure and interpretation of computer programs
Personal Author:
Series:
Electrical engineering and computer science series
Edition:
2nd ed.
Publication Information:
Cambridge, Mass. : The MIT Press, 1996
ISBN:
9780262011532

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000004704296 QA76.6 A33 1996 Open Access Book Book
Searching...

On Order

Summary

Summary

There are new implementations of most of the major programming systems in this revised book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the computer science course at MIT since the first edition was published.


Reviews 1

Choice Review

This book is a revision (1st ed., CH, Dec'84) of one of the great classic texts in computer science, used in MIT's entry-level computer science course since the 1980s. Programming is examined, but through the wide range of subjects used as examples in the programs, the book touches on almost every part of computer science. The language used is Scheme, a modern dialect of LISP; its advantage is its great flexibility and power--the programs developed in the text cover an enormous range of applications. The exercises vary from straightforward applications to subtle and challenging problems. This new edition includes many clarifications, and most of the major programs have been redesigned; new material in concurrency and nondeterminism has been added. Like its predecessor, the book is written in a lively, clear, stimulating style. Combining that style with the great richness of content yields a book hard to put down: open it anywhere and you are "hooked" in a matter of moments. This book should be in every library, and on every computer scientist's bookshelf. Undergraduate through professional. H. D. Warner Western New England College


Table of Contents

Contentsp. vii
Forewordp. xi
Preface to the Second Editionp. xv
Preface to the First Editionp. xvii
Acknowledgmentsp. xxi
1 Building Abstractions with Procedures
1.1 The Elements of Programmingp. 4
1.2 Procedures and the Processes They Generatep. 31
1.3 Formulating Abstractions with Higher-Order Proceduresp. 56
2 Building Abstractions with Datap. 79
2.1 Introduction to Data Abstractionp. 83
2.2 Hierarchical Data and the Closure Propertyp. 97
2.3 Symbolic Datap. 142
2.4 Multiple Representations for Abstract Datap. 169
2.5 Systems with Generic Operationsp. 187
3 Modularity, Objects and State
3.1 Assignment and Local Statep. 218
3.2 The Environmental Model of Evaluationp. 236
3.3 Modeling with Mutable Datap. 251
3.4 Concurrency: Time Is of the Essencep. 297
3.5 Streamsp. 316
4 Metalinguistic Abstraction
4.1 The Metaciricular Evaluatorp. 362
4.2 Variations on a Scheme--Lazy Evaluationp. 398
4.3 Variations on a Scheme--Nondeterministic Computingp. 412
4.4 Logic Programmingp. 438
5 Computing with Register Machinesp. 491
5.1 Designing Register Machinesp. 492
5.2 A Register-Machine Simulatorp. 513
5.3 Storage Allocation and Garbage Collectionp. 533
5.4 The Explicit Control Evaluatorp. 547
5.5 Compilationp. 566
Referencesp. 611
List of Exercisesp. 619
Indexp. 621