On this page, you will find slides and other materials presented in class. Most of these slides are based on some lecture notes by Eli Barzilay. Mistakes are probably mine.
You can browse the examples directly or by tags.
Lecture 0: Introduction. Plait.
Sun 12 Jan 2020 12:00:00 AM
Lecture 1: plait
Thu 14 Jan 2021 12:00:00 AM
Lecture 2: parsing
Sat 16 Jan 2021 12:00:00 AM
Lecture 3: recursive evaluation
Thu 21 Jan 2021 12:00:00 AM
Lecture 4: substitution
Mon 25 Jan 2021 12:00:00 AM
Lecture 5: substitution, lazy evaluation, and de Bruijn indices
Wed 27 Jan 2021 12:00:00 AM
Lecture 6: substitution and functions
Tue 02 Feb 2021 12:00:00 AM
Lecture 7: lambda, first class functions
Thu 04 Feb 2021 12:00:00 AM
Lecture 8: closures and lexical scope
Tue 09 Feb 2021 12:00:00 AM
Lecture 9: closures and metaevaluators
Thu 11 Feb 2021 12:00:00 AM
Lecture 10: recursion via cyclic environments and mutation.
Tue 16 Feb 2021 12:00:00 AM
Lecture 11: recursion via the Y-combinator
Thu 18 Feb 2021 12:00:00 AM
Lecture 12: Type rules
Tue 23 Feb 2021 12:00:00 AM
Lecture 13: Type Checkers
Thu 25 Feb 2021 12:00:00 AM
Lecture 14: Type unification / inference
Thu 11 Mar 2021 12:00:00 AM
Lecture 15: Continuations
Tue 16 Mar 2021 12:00:00 AM
Lecture 16: Continuation based interpreters
Thu 18 Mar 2021 12:00:00 AM
Lecture 17: Byte code / continuation based interpreters
Tue 23 Mar 2021 12:00:00 AM
Lecture 18: Two space garbage collection
Thu 25 Mar 2021 12:00:00 AM
Lecture 19: reference counting and plai/gc2
Tue 30 Mar 2021 12:00:00 AM
Lecture 20: Mark & Sweep
Thu 01 Apr 2021 12:00:00 AM
Lecture 21: Allocation improvements
Tue 06 Apr 2021 12:00:00 AM
Lecture 22: Generational Collection
Thu 08 Apr 2021 12:00:00 AM
Lecture 23: Generational Collection II
Tue 13 Apr 2021 12:00:00 AM