Erweiterung eines übersetzergenerierenden Systems um die Synthese von JAVA-Bytecode

von Dirk Seidel, 1999

In dieser Diplomarbeit wurde der Übersetzergenerator ELI um ein Modul zur Erzeugung von JAVA-Bytecode ergänzt. Diese Modul beinhaltet eine klassische Synthesephase, die den JAVA-Bytecode aus einer Zwischensprachdarstellung erzeugt. Die Schnittstelle zu ELI bildet eine Zwischensprache, die aus dem Befehlssatz der virtuellen JAVA-Maschine abgeleitet wurde. Hierbei konnte der Funktionsumfang der virtuellen JAVA-Maschine weitestgehend auch in der Zwischensprache zur Verfügung gestellt werden. Darüberhinaus wurden einige Inkonsistenzen und Unzulänglichkeiten im Entwurf des Befehlssatzes der virtuellen JAVA-Maschine in der Zwischensprache korrigiert.

Viele Objekte anderer Sprachen, wie zum Beispiel Verbundtypen haben in der Zwischensprache, bzw. in JAVA, keine direkte Entsprechung. Exemplarisch für diese Eigenschaften wurden einige Typen, die in Pascal-ähnlichen Sprachen Verwendung finden, auf die Zwischensprache abgebildet. Diese Mechanismen sind als Unterstützung für den Übersetzerautor in einer Zwischenspracherweiterung gekapselt, so daß die eigentlichen Abbildungen transparent sind.

Zu einer vollständigen Synthesephase gehören auch Optimierungen. Im besonderen galt es, die Anzahl der in einer JAVA-Bytecode-Methode verwendeten lokalen Variablen möglichst klein zu halten, um so eine effizientere Ausführung des Zielprogramms zu ermöglichen. Durch die Verwandschaft der lokalen Variablen der virtuellen JAVA-Maschine zu Registern, liessen sich leicht modifizierte Verfahren aus der Registerallokation verwenden.

Impressum | Webmaster | Letzte Änderungen am : 16.10.2013