Next: Conclusions
Up: Java as an Intermediate
Previous: Memory Usage
Several
other projects are also using Java to implement high-level
languages, encompassing a wide range of design approaches. Perhaps the
highest level is Libero [12], which compiles a program
expressed in the form of a finite state machine into one of a variety of
target languages, including Java. NetRexx [9] is a dialect
of the Rexx language that also compiles to Java. Both of these projects
take an approach similar to that described in this paper, in that Java
source code is generated. More directly, Intermetrics Inc. have adapted
their Ada 95 compiler [16] to generate Java bytecode,
dispensing with the intermediate step of using a Java compiler such as
Sun's javac. The Kawa Scheme-in-Java
compiler [8] also generates Java bytecode, enabling the
compiler to perform tail-recursion elimination using the GOTO bytecode
instruction (there is no corresponding goto statement in the Java
language). Finally, HotTEA [13] implements a simple Basic
interpreter on top of the Java interpreter, without requiring any
compilation at all.
Next: Conclusions
Up: Java as an Intermediate
Previous: Memory Usage
Jonathan Hardwick