A Java Virtual Machine for Aos

Rolf Laich
Masters Thesis at the Institute of Computer Science ETH Zürich
Supervisors: P. Reali, Prof. J. Gutknecht

In this work a Java Virtual Machine (JVM [2]) for the Active Oberon Sytem (Aos [3]) was constructed.
A skeleton for a JVM for the Oberon System ([5], [1]) was completed and ported to Aos. This included the design and the implementation of Interfaces, Exception Handling and Concurrency support for the Aos JVM. The Just in Time Compiler of the JVM was completed. Small parts of the JDK1.2 were also implemented. The current version of the JVM is able to execute any Java program that uses only the available parts of the library. The program PepTest.java of the SPEC JVM98 benchmark (see [4]) was run successfully! This program tests a lot of the functionality of a JVM and reports, whether the behaviour was correct or not.
While other JVMs usually run on top of an Operating System, the Aos JVM is deeply integrated in Aos. Java Objects and Aos Objects have the same structures and run in the same threads. The JVM makes direct use of the Aos runtime system. This allows a tight cooperation between Active Oberon and Java.
Until now the Aos JVM is clearly slower that the compared JVMs of SUN Microsystem, but with a better compiling scheme, improvements should be easy to obtain.