Method Dispatch OptimizationExplores method dispatch optimization in object-oriented languages, focusing on inline caching and membership tests.
Subtyping and Generics in ScalaExplores subtyping, generics, and variance in Scala, emphasizing the importance of precise type descriptions and demonstrating practical applications of for expressions.
Subtyping and Type CalculusExplores subtyping, type calculus, and type bounds calculation in a system with subtyping, guiding through exercises and proofs step by step.
Compiler Extension LabCovers the Compiler Extension Lab, focusing on adding new functionality to a simple functional language compiler.
Polymorphism and ProofsCovers parametric polymorphism, lists construction, tuples, generic methods, merge sort, and proving program properties.
Types and Inductive RelationsDiscusses the importance of types, unsound type systems, and inductively defined relations for a small language's type system.