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 II
Last Updated: 2026-02-05 15:14:31
Abstract
This course covers advanced topics in compiler design: SSA intermediate representation and its use in optimization, just-in-time compilation, profile-based compilation, exception handling in modern programming languages.
Objective
Understand translation of object-oriented programs, opportunities and difficulties in optimizing object-oriented programs.
Content
This course builds conceptually on Compiler Design I, but this class is not a prerequisite. Students should however have a solid understanding of basic compiler technology. This course provides another opportunity to explore software design in a medium-scale software project. The focus is on handling the key features of object-oriented programs. We discuss implementations of single and multiple inheritance (incl. object layout, method dispatch) and optimization opportunities. Specific topics: Single inheritance, multiple inheritance, object layout, method dispatch, type analysis, type propagation, static single assignment (SSA) representation, constant folding, partial redundancy optimizations, profiling, profile-guided code generation. Special topics as time permits: debugging optimized code, multi-threading, data races, object races, memory consistency models, programming language design.
Resources
Literature
Aho/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (English edition or both volumes of the German edition). In addition papers as provided in the class.
General Information
- Language
- English
- Levels
- BSC , DS , MSC
- Frequency
- Yearly recurring
Examination
- Type
- end-of-semester examination
Course Components
| Type | Title | Time & Place | Hours |
|---|---|---|---|
| lecture | Compiler Design II (in English) |
|
2 h weekly |
| exercise | Compiler Design II (in English) |
|
2 h weekly |