Enrichment & Ancillary
Ancillary/Supplementary Videos
- Micinski on cons/improper lists/diagrams
- Continuations: the Swiss Army Knife of Flow Control
- Byrd’s Tutorial on the CPS Transformation
Enrichment
- More on the Ackermann Function + History
- Hutton’s Tutorial on
fold
operators - Reynold’s “Definitional Interpreters for Higher-order Programming Languages” (Updated Notes)
-
Norman on “Denotational Design” (sort of our style of writing interpreters)
- Danvy & Nielsen’s “Defunctionalization at Work”
- Vanier’s blogpost on the Y combinator
- Yin Wang’s slide deck on (re-)deriving the Y combinator
- The smallest (in AIT) fix-point combinator
- Hunting the history of Moses Schönfinkel
- Someone else’s explanation of the CPS transformation
- A first-order one-pass CPS transformation
- Lambda: the Ultimate GOTO
- Church encoding is the vistor pattern
- A Profile of Mathematical Logic (A fun, quick-ish read on the story of modern logic)
- The Search for Mathematical Roots, 1870-1940: Logics, Set Theories and the Foundations of Mathematics from Cantor through Russell to Gödel (A grown-up text on much of the same.)
- Philosophy of Computer Science (Draft text)
-
Logicomix (It’s a comic about Russell and early 20th century mathematical logic. ᕕ( ᐛ )ᕗ)
- History of Lambda Calculus and Combinatory Logic
- SKI Combinator Tetris
- van Emden on relational programming, logic beyond prolog
- Purity and programming purely in Prolog
- Chiang’s short story “Seventy-two Letters” (Audio version)
Additional online textbooks with relevant sections/explanations.
- PPL Notes
- Krishnamurthi’s PLAI
- Barzilay’s PL class notes
“All language designers are arrogant. Goes with the territory…” – Larry Wall