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
Compiler Design II (in English)
Last Updated: 2026-02-05 15:07:03
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 |