Of Programming Languages | 15312 Foundations
The journey begins by moving away from "concrete syntax" (the curly braces and semicolons) and toward . You learn that a program is a structured mathematical object, not just a string of characters. 2. Statics: Type Systems
The "Statics" of a language define what it means for a program to be "well-formed" before it ever runs. You explore: 15312 foundations of programming languages
The climax of the course is proving . Together, these two properties guarantee that if a program passes the type checker, it will either finish with a result or keep making progress—it will never crash or enter an undefined state. Why Study It? The journey begins by moving away from "concrete
Writing code that works across multiple types (generics). 3. Dynamics: Execution Models Statics: Type Systems The "Statics" of a language
You start thinking like a type checker. You begin to catch "impossible" bugs before you even hit compile because you've designed your data structures to be mathematically sound.
At its core, 15-312 is about the . When you write x = x + 1 , why does the computer know what to do?