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.