Options
1997
Doctoral Thesis
Title
Ein System für die Konstruktion objektorientierter Übersetzer
Abstract
In dieser Arbeit wird das OCC-System (OCC ist ein Akronym von Objectoriented Compiler Construction) vorgestellt, welches das Erzeugen von Uebersetzern fuer imperative und objektorientierte Programmiersprachen unterstuetzt. Der Ansatz beruecksichtigt besonders wichtige Anforderungen bei der Definition und Entwicklung neuer Sprachen wie schnelle Implementierung durch Wiederverwenden bereits existierender Konstrukte, Austauschbarkeit von Sprachkonstrukten und leichte Integration neuer Konstrukte. Es werden zunaechst wichtige imperative und objektorientierte Programmiersprachen auf ihre gemeinsamen Eigenschaften hin untersucht. Als wichtig werden Sprachen eingestuft, die entweder weit verbreitet sind beziehungsweise waren oder durch neue Konzepte die Entwicklung anderer Sprachen stark beeinflusst haben. Die gemeinsamen Konzepte dieser Sprachen werden extrahiert und daraus wird eine sprachunabhaengige Systematik erstellt. Diese Systematik bildet die Grundlage einer Bibliothek von Klassen fu er haeufig benoetigte Sprachkonzepte. Diese Bibliothek steht im Mittelpunkt des hier entwickelten OCC-Systems. Um eine konkrete Programmiersprache zu implementieren ordnet der Sprachentwickler den Konstrukten der konkreten Sprache Klassen der Bibliothek zu. Ein Werkzeug unterstuetzt das Anpassen eines konkreten Konstrukts der Sprache an eine Klasse der Bibliothek. Nach diesem Anpassen uebernehmen Methoden der Bibliotheksklassen die semantische Analyse und die Codegenerierung fuer die Konstrukte der neuen Sprache. Durch (eingeschraenktes) mehrfaches Beerben kann die semantische Analyse entsprechend den Anforderungen parametrisiert werden; Spezialisierungen existierender Konzepte koennen durch Beerben angemessen realisiert werden. Durch das Modellieren der Bibliotheksklassen als abstrakte Datentypen koennen einzelne Sprachkonstrukte innerhalb bestimmter Kategorien gegeneinander ausgetauscht werden, ohne den Rest des Uebersetzers zu beeinflussen. Ergaenzt wird das System durch eine als H y pertext aufgebaute Dokumentation, die den Sprachentwickler beim Aufspueren von Sprachkonstrukten und bei deren Wiederverwendung unterstuetzt. Das OCC-System wird mit unterschiedlichen Systemen und Entwicklungsumgebungen verglichen, die das Erstellen von Uebersetzern oder einzelnen Uebersetzungsphasen unterstuetzen. Ausgewaehlte Aspekte einer prototypischen Implementierung des OCC-Systems werden vorgestellt und erlaeutert. Die Tauglichkeit des Prototyps wird anhand der Implementierung zweier grosser und sehr unterschiedlicher Sprachen demonstriert.
Thesis Note
Kaiserslautern, Univ., Diss., 1997