ÿþ<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Briki: a Flexible Java Compiler</title> </head> <body> <b>Title:</b> Briki: a Flexible Java Compiler<br> <b>Authors:</b> <a href="http://cierniak.org/research">Michal Cierniak</a> and Wei Li, University of Rochester.<br> <b>Source:</b> <a href="https://dspace.lib.rochester.edu/handle/1802/493">Tech Report 621</a>, Department of Computer Science, University of Rochester, May 1996.<br> <b>Full text:</b> <a href="briki-tr621-1996.pdf">pdf</a>, <a href="https://dspace.lib.rochester.edu/retrieve/961/96.tr621.Briki_a_flexible_java_compiler.ps">ps</a><br> <b>Keywords:</b> Java, compiler, optimizations, Briki, JavaIR, bytecode<br> <p> <b>Abstract:</b><br> 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. <p> <a href="index.html">Back to MichaB's publications</a> <p><hr> <font size=-2> Last updated: March 11, 2005 by MichaB Cierniak.</font> </body> </html>