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.