JavaVM Implementation: Compilers versus Hardware
Andreas Krall and
Anton Ertl
Institut für Computersprachen
Technische Universität Wien
Argentinierstraße 8
A-1040 Wien, Austria
{andi,anton}@complang.tuwien.ac.at
and
Michael Gschwind
Institut für Technische Informatik
Technische Universität Wien
Treitlstraße 1
A-1040 Wien, Austria
mike@vlsivie.tuwien.ac.at
Abstract
The Java Virtual Machine (JavaVM) has contributed greatly to Java's
success because it provides a common intermediate format which can
be shared across the Internet. Unfortunately, the JavaVM has been
optimized for an interpreted model, resulting in inferior
performance because its stack-based execution model cannot exploit
instruction-level parallelism. The inherent serialization of the
stack execution model can be addressed either by using compilation
techniques or by hardware.
In this article, we review the different JavaVM implementation
methods based on our experiences with the implementation of the
CACAO just-in-time compiler. For comparison, we have also
investigated different hardware architectures for the direct
implementation of the JavaVM.