Languages [2021] - 15312 Foundations Of Programming
The course unfolds logically, building a complete picture of language theory from the ground up. The schedule below, based on a typical offering, shows how core concepts are introduced and expanded upon throughout the semester:
Introduces the concept of "state" and maps out how memory changes during execution. Parametric (Generics), Subtyping
Demystifying 15-312: Foundations of Programming Languages Programming languages are the bedrock of computer science, serving as the bridge between human thought and machine execution. While many programmers learn languages through syntax and libraries, computer scientists study them through logic, mathematics, and formal semantics. At Carnegie Mellon University, this rigorous pursuit is encapsulated in . 15312 foundations of programming languages
The course provides a deep investigation into the design, definition, and implementation of modern programming languages. It is primarily based on the textbook (PFPL) by Robert Harper , who originally designed the course around the principle that types are the central organizing force in computer science.
These judgments are proven using , written as: The course unfolds logically, building a complete picture
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
Analyzes dynamically typed languages (like JavaScript or Python) as a special, single-typed subset of static languages. The Practical Value of Programming Language Theory While many programmers learn languages through syntax and
Alex emerged from the final exam, exhausted but enlightened. They no longer saw code as a sequence of commands, but as a mathematical proof. As Alex walked toward the The Originals A Capella rehearsal , they realized that 15-312 had changed them.
To master the material covered in 15-312, the primary text is almost always by Robert Harper. It is a dense, rigorous, but incredibly rewarding guide to the field.
The journey begins by moving away from "concrete syntax" (the curly braces and semicolons) and toward . You learn that a program is a structured mathematical object, not just a string of characters. 2. Statics: Type Systems
15-312 is a legendary undergraduate course at CMU. It provides a rigorous introduction to the structural and operational semantics of programming languages.