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.