School of Computer Science Intranet
Dynamic compilation of Java bytecodes
Ian A. Rogers
This thesis contains the requirements, design, and performance of a Java Virtual Machine (JVM) built on a dynamic binary translator. This thesis also provides a survey of current academic and commercial technologies used to run Java programs.
Dynamic binary translators provide a mechanism for emulating the features of one computer platform, the subject machine, on an entirely different computer platform, the target machine. It is argued that dynamic translation of a subject machine program will allow it to execute at near-native speed on the target machine. Recompiling heavily utilised sections of code adapts the translated program optimising the performance.
The JVM provides an artificial computer platform for a developer that is stable regardless of the underlying machine. Currently programs developed for the JVM are executed slower than programs developed for a specific computer platform. This thesis surveys how academic and commercial technologies aim to reduce this speed penalty in using the JVM. It then describes a dynamic translation model built on the existing Dynamite technology, with the JVM as the subject machine.
By adapting the compiled code over time, the dynamic translator creates code comparable with the state-of-the-art JVMs and with native machine code. This thesis proposes why our dynamic translation model may eventually provide comparable and better performance than the state-of-the-art JVMs.