What is a language, and how can we prove it behaves as intended? The Core Philosophy: Type Theory and Logic The course is built on the rigorous framework of Type Theory
If ( \cdot \vdash e : \tau ) and ( e \Downarrow v ), then ( \cdot \vdash v : \tau ).
: Students use formal techniques like structural induction and inference rules to prove properties like Type Safety , ensuring that well-typed programs do not exhibit undefined behavior. 15312 foundations of programming languages
The rules of type systems that predict program behavior before execution.
Defining exactly how a program executes via transition systems. Key Pillars of the Curriculum 1. Structural Induction What is a language, and how can we
You will no longer wonder why a language allows certain actions and forbids others. You will understand the type system behind it.
Proving that "well-typed programs cannot go wrong" using the Progress (a program can always take a step) and Preservation (stepping maintains the type) theorems. The rules of type systems that predict program
At Carnegie Mellon University (CMU), takes a radically different approach. It strips away the superficial syntax of programming languages to examine their core mathematical properties.
Most software engineering courses focus on how to use a language to solve a problem. 15-312 flips the script, focusing on what a language actually is. The course treats programming languages not as arbitrary collections of features, but as elegant mathematical objects. The curriculum is built on a central methodology: