15312 Foundations Of Programming Languages Jun 2026

When exactly does an argument get computed?

The course contrasts static typing (checking types at compile-time) with dynamic typing (checking types at runtime). It illuminates how static type systems act as a form of lightweight, automated formal verification. Type Safety: Progress and Preservation

The core philosophy of 15-312 is that a programming language is not just a tool, but a . Rather than discussing "syntax" as just where to put semicolons, the course uses Type Theory as an organizing principle. 15312 foundations of programming languages

The history of programming languages shows a shift towards abstraction. As noted by Ramotion , early attempts like Plankalkül in the 1940s aimed to move away from pure machine code.

As the study progresses, the foundations expand to include complex features that define modern computing: When exactly does an argument get computed

The journey begins with pure logic. You examine booleans, null types, and simple binary operations. From there, you introduce: Product Types (

Practical Foundations for Programming Languages (PFPL) by Robert Harper. Type Safety: Progress and Preservation The core philosophy

The "bread and butter" of the course, used to define syntax and prove properties through structural induction.

Here is a comprehensive guide to navigating 15-312.

Static semantics dictate what constitutes a "legal" program before execution. This is where type systems are defined. Using formal derivation rules (logical fractions), students learn to prove that an expression has a type under a specific context Γcap gamma (written as

20 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *