Title: Briki: a Flexible Java Compiler
Authors: Michal Cierniak and Wei Li, University of Rochester.
Source: Tech Report 621, Department of Computer Science, University of Rochester, May 1996.
Full text: pdf, ps
Keywords: Java, compiler, optimizations, Briki, JavaIR, bytecode

We present a Java compiler architecture which uses a unique combination of front- and back-ends to deliver great flexibility. Our compiler is designed to use the same optimization passes no matter which pair of front- and back-end is used. The compiler can be configured as a traditional stand-alone compiler (which compiles Java source into Java bytecodes). Another configuration can be used as an on-the-fly optimizer (which optimizes applets as they are loaded from the network). We can also compile Java directly to native code, thus using Java as a replacement for one of the traditional programming languages. Other interesting setups are also possible. This flexibility is achieved by using a common intermediate representation, JavaIR (Java Intermediate Representation). Multiple front-ends convert various input formats (Java source, bytecode) into JavaIR. Once represented as JavaIR an application can be transformed with any of the existing passes.

Back to Michał's publications

Last updated: March 11, 2005 by Michał Cierniak.