15312 Foundations Of Programming Languages
Modern engineering relies on DSLs (SQL, Regex, configuration languages like YAML, even Terraform HCL). 15-312 gives you a blueprint for defining your own language: syntax, semantics, and a type checker.
Syntax is the surface. In formal foundations, we don't use regular expressions; we use Context-Free Grammars (CFGs) 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. 15312 foundations of programming languages
How does the program run? You will study two main styles: Modern engineering relies on DSLs (SQL, Regex, configuration