15312 Foundations Of Programming Languages -
. Instead of viewing programs as a sequence of instructions for a machine, 15-312 treats them as mathematical proofs. This perspective is rooted in the Curry-Howard Isomorphism
To the uninitiated, might look like an arbitrary alphanumeric code. To computer science students, particularly those at Carnegie Mellon University (CMU), it represents a rite of passage. 15-312 (often stylized as 15-312) is the legendary undergraduate/grad course that separates "coders" from "computer scientists." 15312 foundations of programming languages
Represents a type scheme, which can be either a monomorphic type or a polymorphic type with a universal quantifier. To computer science students, particularly those at Carnegie
The foundations of programming languages are the grammar, logic, and mathematics of computation itself. And once you learn them, every language becomes a dialect of a single, universal tongue—the language of thought made formal. And once you learn them, every language becomes
If a program has a type and takes a step, it still has that same type.
The "heart" of these foundations is . In this context, types are not just labels for data (like integers or strings); they are formal specifications. The central mantra of the course— “Progress and Preservation” —defines the safety of a language:
