15312 foundations of programming languages

15312 Foundations Of Programming Languages Official

This is the heart of the course. You will learn to define typing rules using Inference Rules (horizontal lines).

Implement a complete programming language including: 15312 foundations of programming languages

Deliverables: GitHub repository with code (OCaml/Haskell/Rust) + 3-page written proof of progress & preservation for a core subset. This is the heart of the course


Most modern programs do many things at once. Concurrency introduces new foundations: threads, locks, message passing, and atomicity. Most modern programs do many things at once

Classic models:

In 15312, concurrency is studied through process calculi like CSP (Communicating Sequential Processes) and π-calculus. These formalisms treat programs as interacting processes, allowing algebraic reasoning about communication and synchronization.


When you understand type safety, you understand why a compiler rejecting your code is a feature. Languages with strong foundations (Rust, Haskell, OCaml) allow you to change 50% of your codebase, and if it compiles, it likely works.