This is the course website for SI413: Programming Languages and Implementation in Fall 2026.
This course is all about the design and implementation of programming languages. We will learn how to write and understand language specs, see multiple different programming language paradigms, and get our hands dirty writing interpreters and compilers for a progressively powerful series of languages that we design and build.
See the course policy for details on syllabus, grading, etc.
Last week
Monday 11/02
HW 4.1 due before class
Monday 11/02
Class 4.3: Objects with lambda and message passing
Wednesday 11/04
Class 4.4: Currying and finishing up closures
Wednesday 11/04
Lab 4.1 due 23:59
Friday 11/06
Lab 4.2: Interpreter for functional language
This week
Monday 11/09
HW 4.2 due before class
Monday 11/09
Class 5.1: Static and dynamic typing
Wednesday 11/11
Veterans Day Holiday
Thursday 11/12
Lab 4.2 due 23:59
Friday 11/13
Lab 5.1: Numbers and Built-in functions
Next week
Monday 11/16
HW 6.1 due before class
Monday 11/16
Class 5.2: Polymorphism
Wednesday 11/18
Class 5.3: Generics and templates (parametric polymorphism)
Wednesday 11/18
Lab 5.1 due 23:59
Friday 11/20
Lab 6.1: Esoteric languages