This essay outlines the core philosophy and technical pillars of 15-312: Foundations of Programming Languages, a course famously centered on the rigorous study of language design through the lens of type theory and operational semantics.
Week 1: Lambda calculus, ASTs, evaluation rules, write an interpreter.
Week 2: Simply typed lambda calculus, typing rules, implement type checker.
Week 3: Hindley–Milner basics, unification, start implementing Algorithm W.
Week 4: Progress & preservation proofs for core language.
Week 5: Polymorphism/System F overview, CPS conversion.
Week 6: Effects and moduless, final project polishing and write-up. 15312 foundations of programming languages
In this example, the identity function takes an argument x and returns it unchanged. Our type inference algorithm infers that identity has a type scheme forall a. a -> a, indicating that it works with any type a. This essay outlines the core philosophy and technical
15-312: Foundations of Programming Languages (FPL) at Carnegie Mellon University is more than just a coding course; it is a deep dive into the mathematical soul of software. While many computer science courses focus on to use a language, 15-312 asks a more fundamental question: Shared memory (with mutexes) – easy to get
Standard ML (SML): The primary implementation language is SML, which students use to build interpreters for various language models directly from their formal definitions. Key Topics Covered
-- Type.hs
data Type = TV String | TCon String [Type] deriving (Show, Eq)