Den Hoek

A typical week in "15312 foundations of programming languages" CMU:

Whether you are designing a new language or aiming to master an existing one, understanding the fundamentals of syntax, semantics, and type systems is crucial. 1. What Are the Foundations of Programming Languages?

This power enables exotic control structures: non-local exits, cooperative multitasking, and even backtracking. Understanding continuations is like learning to see the matrix of program flow.

If a well-typed program takes an execution step, the resulting program has the exact same type. Structural Induction

One of the most powerful ideas in 15312 is the . A type is a label that tells you what kind of value a variable or expression can hold—integer, boolean, string, function, etc.

15312 Foundations of Programming Languages: An In-Depth Guide

If a program cannot be completely traced back to these foundational axioms, it is rejected by the compiler. Dynamics: How Does a Program Execute?

If you want, I can:

Computer science relies on programming languages to turn abstract logic into executable reality. At Carnegie Mellon University (CMU), the course serves as a definitive roadmap for understanding how these languages are designed, specified, and implemented. Rather than teaching you how to use a specific language, 15-312 teaches you how to reason about all languages through rigorous mathematical frameworks.

The course moves away from a "feature-by-feature" look at popular languages and instead focuses on a single mathematical framework—often called Type Theory Carnegie Mellon University Computer Science Department Primary Tool: You will use Standard ML (SML) for most programming assignments. The primary reference is typically Practical Foundations for Programming Languages Robert Harper Core Skills: You'll learn to define the (type systems) and (how code actually runs) for various language features. Carnegie Mellon University Computer Science Department 2. What You’ll Study The curriculum is built on several foundational concepts: CMU School of Computer Science Carnegie Mellon University 3 Apr 2026 —

I can also help explain the behind formal verification . A Timeline of Programming Languages - IEEE Computer Society

This is not an introductory course. It is designed for students who have already mastered advanced programming concepts and are ready for a rigorous, theoretical treatment of the subject. The official prerequisites include and 15-251 (Great Theoretical Ideas in Computer Science) or their equivalents. Proficiency in Standard ML (a functional programming language) is expected, and experience with writing formal mathematical proofs is absolutely necessary.

Scroll to Top