Structure and Interpretation of Computer Programs

Second Edition




3 MODULARITY, OBJECTS, AND STATE

3.1 Assignment and Local State

3.1.1 Local State Variables

3.1.2 The Benefits of Introducing Assignment

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 Structure

3.3.2 Representing Queues

3.3.3 Representing Tables

3.3.4 A Simulator for Digital Circuits

3.3.5 Propagation 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