ADVANCED TOPICS IN COMPILERS: DYNAMIC RE-COMPILATION
Department of Computing Science
Revised January 06, 2003
TIME: TR 1400-1520
PLACE: CSC B-43
INSTRUCTOR: José Nelson Amaral
Study dynamic compilation and re-compilation that takes place
at run-time. Explore the trade-off between frequency and cost of re-compilation
and the frequency of execution of procedures at run-time. Study register-based
intermediate representation for Java programs. Characterize efficient run-time
profiling and feedback-based computation.
Course Description and Goals:
The success of Java as a programming language lead to a rekindling interest
on dynamic re-compilation, also known as "just-in-time compiling". The
effective compile time analysis and optimization of Java programs, requires
that the compiler uses a register-based intermediate representation of
the program. However not all the static optimization techniques used for
imperative languages applies directly to object oriented programs. Several
symbolic name resolutions must be delayed until run-time, thus the attraction
of dynamic re-compilation for Java.
In this course we study the most recent papers and reports in the literature dealing with dynamic re-compilation. We will also make experimental use of several virtual machines and compiler infrastructures that became available in the past few years.
The goal of the course is for the students to become conversant on the state of the art of dynamic re-compilation; to develop an in-dept understanding of the issues involved and the trade-offs faced by a dynamic compiler designer; to understand which traditional compiling techniques translate well to a dynamic recompiling environment, and which ones do not; to discover the features and limitations of the infrastructures currently available for dynamic re-compilation; and to identify open research topics that are likely to lead to significant gains either in recompiling efficiency or in execution time performance.
Class Presentations 30%
Practical Experiments 20%
Final Paper 30%
Course Plan:January 07: Assignment of responsibilitie
Links for Jikes:
Slides introducing Jikes RVM at OOPSLA 2002
Jikes RVM User's Guide
Slides on Jikes Intermediate Representation by Shane Brewer
Reading Assignment for Jikes:
1. Alpern et al., The Jalapeño Virtual Machine, IBM System Journal,
Vol. 39, No. 1, 2000.
2. Burke et al., The Jalapeño Dynamic Optimizing Compiler for Java, Java Grande 1999.
3. Arnold et al., Adaptive Optimization in the Jalapeño JVM, OOPSLA , 2000.
Links for The McGill Tool Suite:
University of Alberta