next up previous
Next: Conclusions Up: Java as an Intermediate Previous: Memory Usage

Related Work

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 up previous
Next: Conclusions Up: Java as an Intermediate Previous: Memory Usage

Jonathan Hardwick