Module 5: Abstraction & Interpretation
This page aggregates the generated reference routes used by the learner-facing module.
- Semester:
semester-04-systems-programming - App:
systems
Read only if stuck
- SICP 1.1 The elements of programming
- SICP 1.1.2 Naming and the environment
- SICP 1.1.4 Compound procedures
- SICP 1.1.7 Square roots by Newton's method
- SICP 1.1.8 Procedures as black-box abstractions
- SICP 2.1 Introduction to data abstraction
- SICP 2.1.2 Abstraction barriers
- SICP 2.1.2 Abstraction barriers (part 2)
- SICP 2.2 Hierarchical data and the closure property
- SICP 2.4 Multiple representations for abstract data
- SICP 2.4.1 Representations for complex numbers
- SICP 5.1.2 Abstraction in machine design
- K&R: Basics of functions
- K&R: Scope rules
- K&R: Basics of structures
- K&R: typedef
- SICP 1.3 Formulating abstractions with higher-order procedures
- SICP 1.3.1 Procedures as arguments
- SICP 1.3.2 Constructing procedures using lambda
- SICP 1.3.3 Procedures as general methods
- SICP 1.3.4 Procedures as returned values
- SICP 1.3.4 Procedures as returned values (part 2)
- SICP 1.3.4 Procedures as returned values (part 3)
- SICP 2.2.1 Representing sequences
- SICP 2.2.3 Sequences as conventional interfaces
- SICP 2.2.3 Sequences as conventional interfaces (part 2)
- SICP 3.1.1 Local state variables
- SICP 3.2.3 Frames as the repository of local state
- K&R: Pointers to functions
- SICP 1.1.5 The substitution model
- SICP 1.2 Procedures and the processes they generate
- SICP 1.2.2 Tree recursion
- SICP 3.2 The environment model of evaluation
- SICP 3.2.1 The rules for evaluation
- SICP 3.2.2 Applying simple procedures
- SICP 3.2.4 Internal definitions
- SICP 4.2 Variations on a Scheme -- lazy evaluation
- SICP 4.2.2 An interpreter with lazy evaluation
- SICP 5.1.4 Using a stack to implement recursion
- SICP 5.4.2 Sequence evaluation and tail recursion
- SICP 4.1 The metacircular evaluator
- SICP 4.1.1 The core of the evaluator
- SICP 4.1.2 Representing expressions
- SICP 4.1.2 Representing expressions (part 2)
- SICP 4.1.3 Evaluator data structures
- SICP 4.1.4 Running the evaluator as a program
- SICP 4.1.5 Data as programs
- SICP 4.1.6 Internal definitions
- SICP 4.1.7 Separating syntactic analysis from execution
- SICP 5.4 The explicit-control evaluator
- SICP 5.4.1 Core of the explicit-control evaluator
- SICP 5.5 Compilation
- SICP 5.5.1 Structure of the compiler
- SICP 5.5.2 Compiling expressions
- SICP 5.5.6 Lexical addressing
- SICP 3.1 Assignment and local state
- SICP 3.1.2 The benefits of introducing assignment
- SICP 3.1.3 The costs of introducing assignment
- SICP 3.1.3 The costs of introducing assignment (part 2)
- SICP 3.3 Modeling with mutable data
- SICP 3.4 Concurrency: time is of the essence
- SICP 3.4.1 The nature of time in concurrent systems
- SICP 3.4.2 Mechanisms for controlling concurrency
- SICP 3.4.2 Mechanisms for controlling concurrency (part 2)
- SICP 3.5 Streams
- SICP 3.5.1 Streams are delayed lists
- SICP 3.5.2 Infinite streams
- SICP 3.5.3 Exploiting the stream paradigm
- SICP 3.5.4 Streams and delayed evaluation
- SICP 3.5.5 Modularity of functional programs
- SICP 1.2 Procedures and processes
- SICP 3.1.3 Costs of introducing assignment
Optional deep dive
- SICP 2.3 Symbolic data
- SICP 2.3.2 Symbolic differentiation
- SICP 2.4.3 Data-directed programming and additivity
- SICP 2.5 Systems with generic operations
- SICP 3.3.1 Mutable list structure
- SICP 4.3 Variations on a Scheme -- nondeterministic
- SICP 4.4 Logic programming
- SICP 5.1 Designing register machines