15312 Foundations Of Programming Languages !!top!! < 2024-2026 >
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.
How do we prove what a program actually does? 15-312 primarily utilizes . SOS uses formal inference rules to transition a program from one state to another. The course contrasts two primary evaluation strategies: 15312 foundations of programming languages
Syntax defines the rules governing the structure of a program. In foundation courses, syntax is often defined using Context-Free Grammars (CFGs) or Abstract Syntax Trees (ASTs). Semantics (The Meaning) Proving that "well-typed programs cannot go wrong" using
The grammatical structure of code (e.g., BNF grammar). Semantics: The meaning of code (what it actually does). Type Systems: Rules ensuring safety and consistency. SOS uses formal inference rules to transition a
The λ-calculus is powerful but unsafe (you can apply True to 3 ). Adding types fixes this. You learn the : Γ ⊢ e : τ (In context Γ, expression e has type τ). You also meet the Type Safety Theorem , which proves:
If a program has a certain type and takes a step of execution, it must still have that same type.