251-223 Compiler Design II
[
Computer Science Department
| Institut für Computersysteme
| Gruppe Prof. Gross]
News
News will be posted on the lecture's blog:
You can subscribe to the following RSS feeds to receive automatic updates:
Course overview
This course covers principles underlying the design of
optimizing compilers for object-oriented languages. We assume
that the student understands the basics of compiler construction
for a simple imperative language (like Pascal and its
descendants, a sane subset of C, Java, or C#). This course
focuses on those aspects that are critical for the
implementation of realistic compilers for an object-oriented
language and the interaction between runtime system and
compiler. We may also discuss issues related to C++, C#,
Oberon, or SmallTalk, as time and energy permits.
Topics may include
- Exception handling
- Synchronization, support for concurrency
- Optimizations
- Garbage collection
- Profile-based compilation
- Just-in-Time compilation
Course schedule
-
Lecture: Tuesday 10:15 – 11:55 a.m. (IFW C42)
-
Recitation: Friday 8:15 – 10:00 a.m. (IWF C42):
The recitation section meets irregularly.
Recitation sections will be announced in class and on the
blog.
(Make sure that at least one member of each team can
attend the recitation section.)
For a global overview see the tentative lecture and assignment plan.
Contacts
Reading material
-
The following book contains a wealth of information:
Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman,
Compilers: Principles, Techniques, and Tools
,
Addison-Wesley 1986 (Deutsche Ausgabe: Addison-Wesley Deutschland 1988).
-
Static single assignment form:
-
Steven Muchnick,
Advanced Compiler Design and Implementation
,
Morgan Kaufmann Publishers, 1997, Pages 252 - 258.
-
Marc Brandis, Hans Peter Mössenböck.
Single-pass generation of static single-assignment form for structured languages.
,
ACM Transactions on Programming Languages and Systems, 16(6):1684-1698, 1994
(ACM library)
-
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman and F. Kenneth Zadeck,
Efficiently computing static single assignment form and the control dependence graph,
ACM Transactions on Programing Languages and Systems 13(4):451-490, October 1991
(ACM library).r
-
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman and F. Kenneth Zadeck,
An efficient method of computing static single assignment form,
Proceedings of the sixteenth annual ACM symposium on Principles of programming languages, 1989, Pages 25 - 35
(ACM library)
-
Fred Chow, Sun Chan, Robert Kennedy, Shin-Ming Liu, Raymond Lo and Peng Tu,
A new algorithm for partial redundancy elimination based on SSA form,
Proceedings of the 1997 ACM SIGPLAN conference on Programming language design and implementation, 1997, Pages 273 - 286
(ACM library)
-
Robert Kennedy, Sun Chan, Shin-Ming Liu, Raymond Lo, Peng Tu and Fred Chow,
Partial redundancy elimination in SSA form,
ACM Transactions on Programming Languages and Systems (TOPLAS), Vol. 21, No. 3, pages 627-672, May 1999.
(ACM library)
-
Other useful references will be announced in class.
Grading
Your grade is determined by homework (various projects related
to the topic of this course). We may schedule a discussion of the
project for each project or student; these meetings will take
place at the end of the semester.
Lecture Notes
Assignment schedule
For a global overview see the tentative lecture and assignment plan.
| Assignment |
Start |
Deadline |
Text |
Fragment |
Solution |
| # 1 Transformation into SSA form |
Oct 05, 2007 |
Oct 25, 2007 |
pdf |
src |
solution |
| # 2 Optimizations based on SSA form |
Oct 26, 2007 |
Nov 15, 2007 |
pdf |
|
solution |
|
| # 3 Decide on project |
Nov 6, 2007 |
Nov 13, 2007 |
pdf |
|
|
Comments: matteo.corti@id.ethz.ch