Adventures in Advanced Symbolic Programming by Gerald Jay Sussman with Pavel Panchekha.
Description:
Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Means for decoupling goals from strategy. Mechanisms for implementing additive data-directed invocation. Working with partially-specified entities. Managing multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Substantial weekly programming assignments are an integral part of the subject.
I was searching for updates on the Revised Report on the Propagator Model when I discovered this course and its readings page.
From the readings page:
Propagator Language and System
- Alexey Radul and Gerald Jay Sussman The Art of the Propagator.
- Alexey Radul’s PhD Thesis on Propagators.
- Propagator System Documentation.
- Propagator System code and documentation tarball.
- Sussman and Steele on Constraints
- Guy Steele’s PhD thesis on Constraint Propagation Language.
Suggestion: Don’t cheat yourself by focusing too narrowly. All of the reading material is worthwhile.