15312 Foundations Of Programming Languages Exclusive May 2026
CMU 15-312: Decoding the Foundations of Programming Languages
For a student or developer, 15-312 is transformative for several reasons: Language Agnosticism: 15312 foundations of programming languages
Type System
PolyLambda's type system consists of the following elements: Week 1-2: Untyped lambda calculus
- Week 1-2: Untyped lambda calculus. Church encodings.
- Week 3-4: Simply typed lambda calculus. Type safety proofs.
- Week 5-6: Polymorphism (System F). Type inference basics.
- Week 7: Midterm. (Usually a proof-heavy exam on operational semantics.)
- Week 8-9: Subtyping. Record and variant types.
- Week 10-11: Recursive types. Equi-recursive vs. iso-recursive.
- Week 12-13: Concurrency and process calculi (π-calculus).
- Week 14: Gradual typing and dynamic languages (Why Ruby/Python aren't "typeless," but "unityped").
- Final Project: Implement a non-trivial language from scratch (parser + type checker + evaluator) for a language like Mini-ML or a toy Rust-like language.
To reason about state, 15312 introduces Hoare logic: To reason about state, 15312 introduces Hoare logic :