15312 Foundations Of Programming Languages ((top)) Jun 2026
Syntax is the surface. In formal foundations, we don't use regular expressions; we use and Abstract Syntax Trees (ASTs) . 15-312 emphasizes the difference between concrete syntax (what the programmer types) and abstract syntax (what the compiler understands). You learn to define languages using BNF (Backus-Naur Form) with a rigor that erases ambiguity.
: Exploring complex control flow mechanisms such as recursion, exceptions, and function invocation. Practical Implementation 15-312: Foundations of Programming Languages (Fall 2023) 15312 foundations of programming languages
Understanding the semantics of your language allows you to write more efficient and correct code. Syntax is the surface
ABTs solve one of the trickiest problems in language design: . Consider a simple mathematical function: . The variable is "bound" by the function definition. If you rename we don't use regular expressions