Structure & Interpretation of Computer Programs
Structure & Interpretation of Computer Programs
Computing with Register Machines
Compilation
The Explicit-Control Evaluator
Storage Allocation and Garbage Collection
A Register-Machine Simulator
Designing Register Machines
Metalinguistic Abstraction
Logic Programming
Variations on a Scheme -- Nondeterministic Computing
Variations on a Scheme -- Lazy Evaluation
The Metacircular Evaluator
Modularity, Objects, and State
Streams
Concurrency: Time Is of the Essence
Modeling with Mutable Data
The Environment Model of Evaluation
Assignment and Local State
Building Abstractions with Data
Systems with Generic Operations
Multiple Representations for Abstract Data
Symbolic Data
Hierarchical Data and the Closure Property
Introduction to Data Abstraction
Building Abstractions with Procedures
Formulating Abstractions with Higher-Order
Procedures as Returned Values
Procedures as General Methods
Constructing Procedures Using Lambda
Procedures as Arguments
Procedures and the Processes They Generate
Example: Testing for Primality
Greatest Common Divisors
Exponentiation
Orders of Growth
Tree Recursion
Linear Recursion and Iteration
The Elements of Programming
Procedures as Black-Box Abstractions
Example: Square Roots by Newton's Method
Conditional Expressions and Predicates
The Substitution Model for Procedure Application
Compound Procedures
Evaluating Combinations
Naming and the Environment
Expressions