Code Generation LabCovers generating code for a compiler, translating an Amy program to WebAssembly, including memory management and pattern matching compilation.
Records and VariantsIntroduces records, variants, evaluation rules, typing rules, aliasing challenges, and benefits in programming languages.
Model Interpretation and CompilationExplores model interpretation, compilation via partial evaluation, function calls, and the transition to partial evaluation, emphasizing the importance of model interpreters in supporting modeling languages.
Debugging and OptimizationCovers types of errors in programming and emphasizes the importance of debugging and optimization techniques.
Lazy EvaluationExplores lazy evaluation in functional programming, focusing on Scala's implementation of lazy lists.
Subtyping and PolymorphismExplores subtyping rules, challenges, and its connection to various forms of polymorphism in programming languages.
Programming Language SecurityExplores programming language security, covering type safety, memory safety, threat safety, Rust's ownership model, sandboxing, and compartmentalization.
Types and Inductive RelationsDiscusses the importance of types, unsound type systems, and inductively defined relations for a small language's type system.