15312 Foundations Of Programming Languages Jun 2026

This is the most critical theorem in the course. You will prove that a language is "safe" by proving two properties:

Train your mind to stop looking at code as strings of text. Always visualize the underlying tree structure.

Students learn to write exact mathematical rules mapping out how these evaluation models alter memory states, variable environments, and control flow. Advanced Concepts: From Continuations to Concurrency 15312 foundations of programming languages

This article explores the core concepts taught in 15-312. It explains why this theoretical framework is essential for modern software engineering. What is 15-312?

Defining execution step-by-step using transition systems. This is the most critical theorem in the course

A central challenge in language design is managing variable scope. 15-312 introduces alpha-equivalence (renaming bound variables without changing meaning) and capture-avoiding substitution.

If you strip a programming language down to its bare essence—no numbers, no loops, no assignment—you get the , invented by Alonzo Church in the 1930s. Students learn to write exact mathematical rules mapping

The central thesis of the course is the :

Before writing code, you define the "grammar" of a language using BNF (Backus-Naur Form). You will learn to think in terms of rather than text strings.