![]() |
ADVANCED TOPICS IN COMPILERS: DYNAMIC RE-COMPILATION
Department of Computing Science |
Revised January 06, 2003
Winter 2003
TIME: TR 1400-1520
PLACE: CSC B-43
INSTRUCTOR:
José Nelson Amaral
Calendar Description:
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.
Grading:
Class Presentations 30%
Homeworks
20%
Practical Experiments 20%
Final Paper
30%
Course Plan:
January 07: Assignment of responsibilitieLinks for Jikes:
Slides introducing Jikes RVM at OOPSLA 2002
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.
CASCON program (inserted)
CASCON Program (link):
CASCON Program (JavaScript):
CASCON Program (php):
CASCON Program (iframe):
Links for The McGill Tool Suite:
STEP
![]() University of Alberta |
![]() Computing Science |