15312 Foundations Of Programming Languages Jun 2026

To prove a language is type-safe, students must complete a rigorous two-part proof using mathematical induction:

One of the central mantras of the course is: Type safety ensures that a program will not execute undefined behaviors (like attempting to add a string to an integer or executing random memory addresses). In 15-312, type safety is not a hand-wavy concept; it is a mathematical theorem proven using two core properties:

If a language possesses both properties, it is mathematically guaranteed never to crash due to undefined behaviors like executing a string as a function. 4. Advanced Language Features

By treating languages mathematically, computer scientists can prove properties about programs—such as safety, correctness, and efficiency—before a single line of code is ever compiled. 1. Syntax: Abstract Syntax Trees (ASTs) and Binding 15312 foundations of programming languages

The key insight: .

15-312 breaks down languages into small, modular fragments to study specific behaviors in isolation. The Standard ML Environment

To reason about state, 15312 introduces : To prove a language is type-safe, students must

You stop guessing why a compiler rejects your code and start reasoning about type checking rules.

The rules that dictate how the program executes step-by-step at runtime. The Lambda Calculus ( -calculus)

Languages designed with sound type systems (like Rust or Haskell) prevent memory leaks and concurrency bugs before the code ever runs. 15-312 breaks down languages into small, modular fragments

A of a Small-step Operational Semantics proof. A comparison of structural vs. nominal type systems. An introduction to Hoare Logic for axiomatic semantics. Let me know which area you'd like to dive into! Share public link

A student who finishes 15312 sees code differently. A loop is not just a loop—it’s a fixed point. A variable is not just a name—it’s a reference cell in a store. A function call is not just a jump—it’s a β-reduction in lambda calculus.

Arguments are deferred and only evaluated when their results are explicitly required. 3. Key Topics Covered in the Curriculum

is a rigorous undergraduate course at Carnegie Mellon University that treats programming languages as mathematical objects rather than just collections of features. Course Overview

, which establishes a direct link between logic and computation. In FPL, you don't just write code; you define the abstract syntax static semantics (type-checking rules), and dynamic semantics

Pokračováním užívání této stránky souhlasíte s použitím cookies. více informací

Nastavení cookie na tomto webu je nastaveno pro "povoleno cookies", aby vám poskytlo nejlepší možné prohlížení stránek. Pokud budete nadále používat tento web bez změny nastavení cookie nebo klepnete na tlačítko "Souhlasím" souhlasíte s podmínkami použití cookie.

Zavřít