CS101c
Programming Languages
Course Description
This course is covers programming language semantics, including operational, denotational, and axiomatic semantics. In addition, we will cover type systems, logic, and type theory, including type inference.
Lecture Notes
- April 3, Introduction and administration [handouts.pdf]
- April 8, Untyped lambda calculus [handouts.pdf]
- April 10, Simply-typed lambda calculus [handouts.pdf]
- April 15, Propositional Logic [handouts.pdf]
- April 17, First and second-order Logic [handouts2.pdf]
- April 29, Curry-Howard Isomorphism [handouts3.pdf]
- May 1, System F [handouts1.pdf]
- May 6: Type inference [handouts2.pdf]
- May 8: Products, unions, existentials [handouts3.pdf]
- May 12: Axiomatic szemantics [handouts.pdf]
- May 29: Type theory [handouts.pdf]
Homeworks
- Lambda calculus
- System F
- System F (part 2)
- Imperative languages