VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.
Compiler Design I
Last Updated: 2026-02-05 15:10:06
Abstract
This course uses compilers as example to expose modern software development techniques.Compiler organization. Lexical analysis. Top-down parsing via recursive descent, table-driven parsers, bottom-up parsing. Symboltables, semantic checking. Code generation for a simple RISC machine: conditionals, loops, procedure calls, simple register allocation techniques.
Objective
Learn principles of compiler design, gain practical experience designing and implementing a medium-scale software system.
Content
This course uses compilers as example to expose modern software development techniques. The course introduces the students to the fundamentals of compiler construction. Students will implement a simple yet complete compiler for an object-oriented programming language for a realistic target machine. Students will learn the use of appropriate tools (parser generators); the implementation language is Java. Throughout the course, students learn to apply their knowledge of theory (automata, grammars, stack machines, program transformation) and well-known programming techniques (module definitions, design patterns, frameworks, software reuse) in a software project. Specific topics: Compiler organization. Lexical analysis. Top-down parsing via recursive descent, table-driven parsers, bottom-up parsing. Symboltables, semantic checking. Code generation for a simple RISC machine: expression evaluation, straight line code, conditionals, loops, procedure calls, simple register allocation techniques. Storage allocation on the stack, parameter passing, runtime storage management, heaps. Special topics as time permits: introduction to global dataflow and its application to register allocation, instruction scheduling.
Resources
Literature
Aho/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (English edition or both volumes of the German edition).
General Information
- Language
- English
- Frequency
- Yearly recurring
Examination
- Type
- session examination
- Mode
- written 60 minutes
- Aids
- Alle geschriebenen und gedruckten Hilfsmittel, aber keine Computer, Handies, oder ähnliches.
Course Components
| Type | Title | Time & Place | Hours |
|---|---|---|---|
| lecture | Compiler Design I |
|
2 h weekly |
| exercise | Compiler Design I |
|
2 h weekly |