15312 Foundations Of Programming: Languages
Syntax defines the rules governing the structure of a program. In foundation courses, syntax is often defined using Context-Free Grammars (CFGs) or Abstract Syntax Trees (ASTs). Semantics (The Meaning)
In 15312, concurrency is studied through like CSP (Communicating Sequential Processes) and π-calculus. These formalisms treat programs as interacting processes, allowing algebraic reasoning about communication and synchronization. 15312 foundations of programming languages
The foundational mathematical model of computation. It introduces concepts like abstraction and application, forming the basis for functional programming. Untyped vs. Typed Syntax defines the rules governing the structure of
: A well-typed program is never stuck. It is either already a finished value, or it can take another step of execution. Untyped vs
Almost every proof in this course relies on induction over the structure of expressions or derivation trees. If you master this early, the rest of the course becomes much more manageable.
Typically involving implementing interpreters or type checkers in Standard ML (SML) , which is preferred for its robust support for pattern matching and algebraic data types.