Anatomy of Programming Languages
By William R. Cook
An undergraduate textbook on programming languages.
Active development Spring 2013 to Spring 2021
Learn by doing, using Haskell. High-level outline of planned scope:
- Expressions & Variables
- First-class Functions & Closures
- Recursion, Fixed Points, Self-Application
- Aspects of Computation: Errors, State, Non-determinism (Monads)
- Static Analysis, Type Checking
- Data Abstraction: Objects and ADTs
- Inheritance & Delegation
- Domain-Specific Languages
- Partial Evaluation
Read the code as you would read poetry.
All code can be executed directly in GHCI.
Source available on GitHub
Comments and collaborators welcome!