DyC, Our Dynamic-Compilation System

In designing DyC, we have strived for both fast dynamic compilation and high-quality dynamically compiled code.

  1. The programmer annotates regions of the programs that should be compiled dynamically and variables for which to specialize the regions;
  2. A static optimizing compiler automatically identifies which data will have known values at run time, given the values of the annotated variables, then creates and optimizes machine-code templates; and
  3. A post-pass uses these templates to automatically produce generating extensions that, when executed, produce optimized executable code at run time.

We have developed a new declarative annotation language and underlying run-time specialization primitives that are more expressive, flexible, and controllable than previous annotation-based systems, while still being easy to use. Our system supports the following features:

DyC's design is described in detail in our journal publication.

Last updated January 30, 1998.
Brian Grant (grant@cs.washington.edu)