CACAO - Eine effiziente JavaVM Implementierung

Andreas Krall
Institut für Computersprachen
Technische Universität Wien
Argentinierstraße 8
A-1040 Wien, Austria
andi@complang.tuwien.ac.at

Kurzfassung

CACAO ist eine effiziente Implementierung einer JavaVM, die auf Just-In-Time Übersetzung beruht. CACAO übersetzt während der Laufzeit die aufgerufenen Methoden auf Maschinencode für den Alpha Prozessor. Der Übersetzer formt dabei den stackbasierten Zwischencode in den registerbasierten Maschinencode von RISC-Prozessoren um. Dabei werden Befehle kombiniert, Kopierbefehle entfernt und den Variablen Maschinenregister zugewiesen. Bei der Entwicklung des Übersetzers wurde auf extrem kurze Übersetzungszeit und geringen Speicherverbrauch geachtet. CACAO ist zur Zeit die schnellste JavaVM Implementierung für den Alpha-Prozessor und benötigt weniger als 1000 Zyklen für die Übersetzung eines Zwischencodebefehls.

Zur Zeit wird CACAO um Maschinencodegeneratoren für den MIPS-, PowerPC- und Sparc-Prozessor erweitert. Gleichzeitig dazu werden die Möglichkeiten geschaffen, den erzeugten Maschinencode abzuspeichern, und nicht nur Just-In-Time, sondern das ganze Programm auf einmal, auch für andere Zielarchitekturen zu übersetzen.