IRISA

Séminaire

Vendredi 10 avril 1998 - 14h00
Salle de conférences Michel Métivier

Craig CHAMBERS
(University of Washington, USA)

Dynamic Compilation in DyC and Whirlwind.

Dynamic compilation is a programming language implementation technique where some parts of a program's compilation are delayed until run-time.  At run-time, additional information is available, such as which procedures or paths are frequently executed, the values or classes of variables and data structures, and the architectural characteristics of the machine on which the program is being executed; this information can be exploited to produce faster and/or more compact code than would be feasible statically.  However, run-time compilation incurs extra time and space overhead that must be overcome for it to be profitable.

I will first discuss my current work on DyC, a system supporting selective dynamic compilation of C programs, guided by declarative user annotations.  DyC optimizes uses of variables and data structures whose run-time values are either invariant once computed or drawn from a small set of possible values.  To reduce the run-time overhead of dynamic compilation, DyC is based on a staged compilation model which shifts much of the dynamic compilation work to static compile-time.

In the second part of the talk, I will describe the initial design of Whirlwind, an optimizing compiler integrating separate compilation, link-time optimization, and dynamic compilation.  Whirlwind seeks to adapt the staged compilation approach of DyC to optimizations for object-oriented and functional languages, building on my earlier experiences with an optimizing dynamic compiler for Self (a purely object-oriented language) and the Vortex link-time optimizing compiler (which compiles a wide range of object-oriented languages).


| Page d'accueil Irisa | Manifestations scientifiques | Comment se rendre à l'Irisa ? |
webmaster@irisa.fr, déc. 1997