APT research areas

Dynamic compilation of Java bytecodes

Ian A. Rogers

Abstract

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.