15312 Foundations Of Programming Languages Official
: An insightful blog post by a former teaching assistant that breaks down the unique challenges of the course, including the implementation of homework problems using Standard ML. Hacker News Core Concepts & Supplementary Materials
How do loops and recursive data structures (lists, trees) fit into pure functional foundations? You learn: 15312 foundations of programming languages
You will dive deep into the Untyped and Simply Typed Lambda Calculus. This is the "atomic theory" of all programming languages. You will learn how: : An insightful blog post by a former
In 15-312, data is not just "objects" or "structs"; it is defined by sums (choices) and products (pairs). Students learn to define a system by enumerating its possibilities. This enforces a style of "correctness by construction." If you define a type that handles every possible variant of a piece of data, the compiler ensures you handle every case. The "billion-dollar mistake" (null pointer exceptions) becomes impossible because the type system forces the programmer to explicitly handle the absence of data. This is the "atomic theory" of all programming languages