- The course is being taught in German. Please see the German version of this page for up to date information.
- Registration for the course is now possible at UniWorX.
Compilers translate higher programming languages to machine language. They use a number of methods, such as parsing, syntactic and semantic program analysis, that have many applications in computer science. This practical gives a first introduction into compiler construction. It introduces basic techniques of compiler construction and gives students the opportunity to study practical applications of techniques from various areas, ranging from formal methods to assembly programming.
In this practical students implement a compiler for MiniJava, a simplified version of Java. Weekly lectures introduce the relevant compiler construction techniques, such parsing, type checking, some program optimisation, and code generation for modern processors. In the practical part these techniques are then used to implement a compiler step by step.
Students may choose to implement their compiler in Java, OCaml or Haskell (other languages on request).
The practical follows the book Modern Compiler Implementation in Java by Andrew Appel, which is structured as follows:
- Fundamentals of Compilation
- Lexical Analysis
- Abstract Syntax
- Semantic Analysis
- Activation Records
- Intermediate Languages
- Basic Blocks
- Instruction Selection
- Liveness Analysis
- Register Allocation
- Advanced Topics (only treated partially in the practical)
- Garbage Collection
- Object-Orientierted Languages
- Functional Languages
- Polymorphic Types
- Dataflow Analysis
- Loop Optimisations
- SSA (Static single-assignment form)
- Pipelining and scheduling
- Memory Hierarchy
Time and Place
|Lecture||Mo, 14–16 Uhr||CIP-Pool (Gobi), Oettingenstr. 67||6.10.2014|
|Practical||Mo, 16-18 Uhr||CIP-Poo (Gobi), Oettingenstr. 67||6.10.2014|
- Master (Medien-)Informatik (Praktikum zu fortgeschrittenen Themen der Informatik)
- Diplom (Medien-)Informatik (Prüfungsbereich T)
- Bachelor (Medien-)Informatik (Vertiefende Themen der Informatik)
Please see the German version of this page for up to date information.