Structure and interpretation of computer programs, second edition

Second Edition
  • 4.4 (21 ratings) ·
  • 135 Want to read
  • 9 Currently reading
  • 24 Have read
Not in Library

My Reading Lists:

Create a new list

Check-In

×Close
Add an optional check-in date. Check-in dates are used to track yearly reading goals.
Today

  • 4.4 (21 ratings) ·
  • 135 Want to read
  • 9 Currently reading
  • 24 Have read

Buy this book

Last edited by kgeno
October 29, 2020 | History

Structure and interpretation of computer programs, second edition

Second Edition
  • 4.4 (21 ratings) ·
  • 135 Want to read
  • 9 Currently reading
  • 24 Have read

Wizard Book n. Hal Abelson's, Jerry Sussman's and Julie Sussman's Structure and Interpretation of Computer Programs (MIT Press, 1984; ISBN 0-262-01077-1), an excellent computer science text used in introductory courses at MIT. So called because of the wizard on the jacket. One of the bibles of the LISP/Scheme world. Also, less commonly, known as the Purple Book.

from The New Hacker's Dictionary, 2nd edition (MIT Press, 1993)

Publish Date
Publisher
MIT Press, McGraw-Hill
Language
English
Pages
883

Buy this book

Previews available in: Chinese English

Edition Availability
Cover of: Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs: JavaScript Edition
2022, MIT Press
in English
Cover of: 计算机程序的构造和解释(原书第2版)
计算机程序的构造和解释(原书第2版)
2019-7, 机械工业出版社
in Chinese
Cover of: Structure and Interpretation of Computer Programs [Paperback] [Jan 01, 2005] Harold Abelson, Gerald Jay Sussman, Julie Sussman
Cover of: Ji suan ji cheng xu de gou zao he jie shi
Ji suan ji cheng xu de gou zao he jie shi: Structure and interpretation of computer programs
2004, Ji xie gong ye chu ban she
in Chinese - Ju yuan shu di 2 ban yi chu
Cover of: Struktura i interpretacja programów komputerowych
Struktura i interpretacja programów komputerowych
2002, Wydawnictwa Naukowo-Techniczne
Hardcover
Cover of: Struktur und Interpretation von Computerprogrammen
Struktur und Interpretation von Computerprogrammen: Eine Informatik-Einführung (Springer-Lehrbuch)
September 11, 2001, Springer
Paperback in German - 4., durchges. Aufl. edition
Cover of: Struktur und Interpretation von Computerprogrammen. Eine Informatik-Einführung
Struktur und Interpretation von Computerprogrammen. Eine Informatik-Einführung
November 17, 1998, Springer Verlag
Paperback in German - 3., ÜBERARB. AUFL. 1998 edition
Cover of: Structure and interpretation of computer programs, second edition
Structure and interpretation of computer programs, second edition
1996, MIT Press, McGraw-Hill
in English - Second Edition
Cover of: Struktur und Interpretation von Computerprogrammen
Struktur und Interpretation von Computerprogrammen: Eine Informatik-Einführung
March 25, 1996, Springer
Paperback in German - 2., unveränd. Aufl. edition
Cover of: Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs
July 25th 1996, MIT Press Ltd, M I T Press, MIT Press Ltd, M I T Press, McGraw-Hill Higher Education
- Second Edition
Cover of: Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs
Jul 1996, MIT Press
Cover of: Abelson
Cover of: Structure et interprétation des programmes informatiques
Cover of: Structure and interpretation of computer programs
Structure and interpretation of computer programs
1985, MIT Press
in English
Cover of: Structure and interpretation of computer programs
Structure and interpretation of computer programs
1985, MIT Press, McGraw-Hill
in English
Cover of: Structure and interpretation of computer programs
Structure and interpretation of computer programs
1985, MIT Press, McGraw-Hill
in English

Add another edition?

Book Details


Table of Contents

Foreword. Foreword
Preface. Preface to the First Edition
Preface. Preface to the Second Edition
Acknowledgements. Acknowledgements
1. Building Abstractions with Procedures
1.1. The Elements of Programming
1.1.1. Expressions
1.1.2. Naming and the Environment
1.1.3. Evaluating Combinations
1.1.4. Compound Procedures
1.1.5. The Substitution Model for Procedure Application
1.1.6. Conditional Expressions and Predicates
1.1.7. Example: Square Roots by Newton's Method
1.1.8. Procedures as Black Box Abstractions
1.2. Procedures and the Processes They Create
1.2.1. Linear Recursion and Iteration
1.2.2. Tree Recursion
1.2.3. Orders of Growth
1.2.4. Exponentiation
1.2.5. Greatest Common Divisors
1.2.6. Example: Testing for Primality
1.3. Formulating Abstractions with Higher-Order Procedures
1.3.1. Procedures as Arguments
1.3.2. Constructing Procedures Using Lambda
1.3.3. Procedures as General Methods
1.3.4. Procedures as Returned Values
2. Building Abstractions with Data
2.1. Introduction to Data Abstraction
2.1.1. Example: Arithmetic Operations for Rational Numbers
2.1.2. Abstraction Barriers
2.1.3. What Is Meant By Data?
2.1.4. Extended Exercise: Interval Arithmetic
2.2. Hierarchical Data and the Closure Property
2.2.1. Representing Sequences
2.2.2. Hierarchical Structures
2.2.3. Sequences as Conventional Interfaces
2.2.4. Example: A Picture Language
2.3. Symbolic Data
2.3.1. Quotation
2.3.2. Example: Symbolic Differentiation
2.3.3. Example: Representing Sets
2.3.4. Example: Huffman Encoding Trees
2.4. Multiple Representations for Abstract Data
2.4.1. Representations for Complex Numbers
2.4.2. Tagged data
2.4.3. Data-Directed Programming and Additivity
2.5. Systems with Generic Operations
2.5.1. Generic Arithmetic Operations
2.5.2. Combining Data of Different Types
2.5.3. Example: Symbolic Algebra
3. Modularity, Objects, and State
3.1. Assignment and Local State
3.1.1. Local State Variables
3.1.2. The Benefits of Introducing Assigment
3.1.3. The Costs of Introducing Assignment
3.2. The Environment Model of Evaluation
3.2.1. The Rules for Evaluation
3.2.2. Applying Simple Procedures
3.2.3. Frames as the Repository of Local State
3.2.4. Internal Definitions
3.3. Modeling with Mutable Data
3.3.1. Mutable List Structures
3.3.2. Representing Queues
3.3.3. Representing Tables
3.3.4. A Simulator for Digital Circuits
3.3.5. Propogation of Constraints
3.4. Concurrency: Time Is of the Essence
3.4.1. The Nature of Time in Concurrent Systems
3.4.2. Mechanisms for Controlling Concurrency
3.5. Streams
3.5.1. Streams Are Delayed Lists
3.5.2. Infinite Streams
3.5.3. Exploiting the Stream Paradigm
3.5.4. Streams and Delayed Evaluation
3.5.5. Modularity of Functional Programs and Modularity of Objects
4. Metalinguistic Abstraction
4.1. The Metacircular Evaluator
4.1.1. The Core of the Evaluator
4.1.2. Representing Expressions
4.1.3. Evaluator Data Structures
4.1.4. Running the Evaluator as a Program
4.1.5. Data as Programs
4.1.6. Internal Definitions
4.1.7. Separating Syntactic Analysis from Execution
4.2. Variations on a Scheme—Lazy Evaluation
4.2.1. normal Order and Applicative Order
4.2.2. An Interpreter with Lazy Evaluation
4.2.3. Streams as Lazy Lists
4.3. Variations on a Scheme—Nondeterministic Computing
4.3.1. Amb and Search
4.3.2. Examples of Nondeterministic Programs
4.3.3. Implementing the Amb Evaluator
4.4. Logic Programming
4.4.1. Deductive Information Retrieval
4.4.2. How the Query System Works
4.4.3. Is Logic Programming Mathematical Logic?
4.4.4. Implementing the Query System
5. Computing with Register Machines
5.1. Designing Register Machines
5.1.1. A Language for Describing Register Machines
5.1.2. Abstraction in Machine Design
5.1.3. Subroutines
5.1.4. Using a Stack to Implement Recursion
5.1.5. Instruction Summary
5.2. A Register-Machine Simulator
5.2.1. The Machine Model
5.2.2. The Assembler
5.2.3. Generating Execution Procedures for Instructions
5.2.4. Monitoring Machine Performance
5.3. Storage Allocation and Garbage Collection
5.3.1. Memory as Vectors
5.3.2. Maintaining the Illusion of Infinite Memory
5.4. The Explicit-Control Evaluator
5.4.1. The Core of the Explicit-Control Evaluator
5.4.2. Sequence Evaluation and Tail Recursion
5.4.3. Conditionals, Assignments, and Definitions
5.4.4. Running the Evaluator
5.5. Compilation
5.5.1. Structure of the Compiler
5.5.2. Compiling Expressions
5.5.3. Compiling Combinations
5.5.4. Combining Instruction Sequences
5.5.5. An Example of Compiled Code
5.5.6. Lexical Addressing
5.5.7. Interfacing Compiled Code to the Evaluator
References. References
List of Exercises. List of Exercises
Index. Index

Edition Notes

This edition emphasizes several new themes. The most important of these is the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming, lazy evaluation, and nondeterministic programming. Includes new sections on concurrency and nondeterminism.

Published in
Cambridge, Mass, New York
Copyright Date
©1996 by The Massachusetts Institute of Technology

Classifications

Dewey Decimal Class
005.13/3
Library of Congress
QA76.6 .A255 1996

The Physical Object

Pagination
xxviii, 855p.
Number of pages
883

ID Numbers

Open Library
OL980232M
Internet Archive
structureinterpr00abel_595
ISBN 10
0262011530, 0070004846
LCCN
96017756
Library Thing
13008
Goodreads
1394820
777411

Links outside Open Library

Community Reviews (0)

Feedback?
No community reviews have been submitted for this work.

History

Download catalog record: RDF / JSON / OPDS | Wikipedia citation
October 29, 2020 Edited by kgeno Edition notes, page count and pagination, Internet Archive link to full book, copyright date
May 24, 2020 Edited by ImportBot import existing book
July 29, 2014 Edited by ImportBot import new book
April 6, 2014 Edited by ImportBot Added IA ID.
April 1, 2008 Created by an anonymous user Imported from Scriblio MARC record