Markus Löberbauer: Compiler Construction

Abstract

The lecture introduces the basic concepts and principles of compiler construction such as scanning, parsing, symbol table handling, semantic analysis and code generation. This will draw a complete picture of recursive descent parsing and presents everything necessary for the programming project. However, in order to make the course more complete, we offer to add two extra chapters about LALR parsing and compiler generators. During the programming project the students implement a complete compiler. This compiler translates the programming language Z# (which is a subset of C#) into ZIL (Z Intermediate Language, a subset of CIL (Common Intermediate Language)). Thus, the compiler should produce complete .NET assemblies that can be executed on the CLR (Common Language Runtime).