15312 Foundations Of Programming Languages (TRUSTED)

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.

The "Dynamics" describe how a program steps from one state to the next. Using , you write rules that dictate exactly how an expression evaluates. This is where you learn about:

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? 15312 foundations of programming languages

How to represent the "rest of the program" as a first-class object.

The formal logic behind garbage collection and resource allocation. 4. The Safety Theorem You start thinking like a type checker

To master the material covered in 15-312, the primary text is almost always by Robert Harper. It is a dense, rigorous, but incredibly rewarding guide to the field.

Once you understand the underlying types (sums, products, functions), every new language is just a different combination of the same fundamental building blocks. Using , you write rules that dictate exactly

At its core, 15-312 is about the . When you write x = x + 1 , why does the computer know what to do?