Type Checking LabFocuses on implementing a type checker for Amy, covering name and type analysis, typing constraints generation, and the importance of type checking in compilation.
Type InferenceExplores type inference in statically typed languages, using algorithms to assign types to program expressions accurately.
Formal Languages: ConceptsCovers the fundamental concepts of formal languages, including alphabets, words, languages, and word equality.
Solving Type ConstraintsExplains the process of solving type constraints using the unification algorithm and generalization for flexible type inference.
Compiling ExpressionsCovers the conversion of expressions, evaluation using stack machines, and bytecode generation.
Simple Code Generation for ifCovers the compilation of statement sequences, control structures, boolean representation, and comparisons in WebAssembly code generation.
Code Generation LabCovers generating code for a compiler, translating an Amy program to WebAssembly, including memory management and pattern matching compilation.
Compiler Extension LabCovers the Compiler Extension Lab, focusing on adding new functionality to a simple functional language compiler.
Register MachineCovers the efficiency of register machines over stack machines, memory organization, and mapping instructions.