Structure and Interpretation of Computer Programs

Second Edition




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 SData-Directed Programming and Additivity


2.5 Systems with Generic Operations

2.5.1 Generic Arithmetic Operation

2.5.2 Combining Data of Different Types

2.5.3 Example: Symbolic Algebra


3 MODULARITY, OBJECTS, AND STATE