15-312 Foundations of Programming Languages
12 units, Carnegie Mellon University
This course discusses in depth many of the concepts underlying the design, definition, implementation, and use of modern programming languages. Formal approaches to defining the syntax and semantics are used to describe the fundamental concepts underlying programming languages. A variety of programming paradigms are covered such as imperative, functional, logic, and concurrent programming. In addition to the formal studies, experience with programming in the languages is used to illustrate how different design goals can lead to radically different languages and models of computation.
Prerequisites: 15-150 (min C) and (21-228 (min C) or 15-251 (min C))
Offered: Spring 2027, Fall 2026, Spring 2026, Fall 2025
Courseweave needs JavaScript to show sections, workloads and planning tools.