Abstract
Fortran ist eine der ältesten Programmiersprachen. Im Bereich der technisch-wissen¬schaft¬li¬chen An¬wen¬dun¬gen konnte sie bis heute ihre Vorrangstellung behaupten. Seit über zwan¬zig Jahren wurden und werden große Mengen an Software in For¬tran geschrieben. Diese Soft¬ware stellt eine große Investition für ihre Hersteller und ein unschätzbares Kapital für ihre Anwender dar.
Ada ist eine der modernsten Programmiers¬prachen. Sie enthält Konzepte, die für die neun¬zi¬ger Jahre — vielleicht darüber hin¬aus — richtungsweisend sein können. Ada wird auf¬grund der Stan¬dardisierung, der Verfügbarkeit von Implementierungen und der An¬pas¬sung an neue Bedürf¬nisse in manchen Bereichen die führende Rolle von Fortran über¬nehmen.
Ein Ausweg aus der von vielen beklagten Softwarekrise führt über den Weg der Wieder- und Weiter¬verwendung von Altsoftware. Deshalb ist ein Werkzeug, das Fortran-Pro¬gram¬me nach Ada übersetzt, wegen der Verschiedenheit der beiden Sprachen nicht nur von wis¬sen¬schaft¬lichem Interesse, sondern auch von wirt¬schaft¬licher Bedeutung. Diese Idee ist aller¬dings nicht neu; einige solcher Systeme sind bereits ver¬fügbar und in der Literatur beschrieben. Diese Systeme leiden aber alle entweder unter zu großen Ein¬schränkungen des über¬setz¬baren Sprach¬umfangs oder an der Ineffizienz der von ihnen erzeug¬ten Ada-Programme.
Die Ziele der in der vorliegenden Dissertation beschriebenen Arbeit lagen darin, Techniken der Kreuz¬kompilation zu studieren, eine softwaretechnisch ausgereifte neue Implementierung her¬zu¬stel¬len und dabei die Schwächen der oben erwähnten Systeme zu beseitigen, insbesondere aber die Behandlung des gesamten Fortran 77-Sprachumfangs zu ermöglichen. Daneben sollte Ada auf seine Taug¬lich¬keit als Imple¬men¬tierungs¬sprache unter¬sucht werden.
Die wesent¬lichen Kon¬zepte, die beim Entwurf und der Implementierung dieses Systems zur Anwendung kamen, lagen
• in der Verwendung einer attributierten Grammatik,
• im Einsatz von Compiler-Gene¬ratoren zur Her¬stel¬lung des Front¬ends und
• in der Verwendung von zwei rechner¬internen Zwischen¬spra¬chen.
Ohne An¬wen¬dung eines Compiler-Gene¬rators hätte schon der Imple¬men¬tierungs¬aufwand für einen handgeschriebenen Parser den Zeit¬rahmen ge¬sprengt. Der Auf¬wand, den der Einsatz von zwei Zwischensprachen erfor¬derte, hat sich gelohnt, da dieser Aufwand bei der Imple¬men¬tierung der Fortran-Ada-Trans¬for¬mation und bei der Her¬stellung des Backends mehrfach ein¬ge¬spart werden konnte. Außerdem wurde dadurch eine klare Struk¬turierung des Übersetzer¬pro¬gramms er¬möglicht, das aus stark von¬ein¬ander entkoppelten, und somit gut test- und wart¬baren Funk¬tionseinheiten besteht.
Als Ergebnis der Arbeit entstand ein großes Softwaresystem, das aus zwei Kom¬po¬nen¬ten besteht: dem eigentlichen Über¬setzer¬programm — dem Crosscompiler — und einer Bibliothek von Ada-Paketen zur Unter¬stüt¬zung der vom Crosscompiler erzeugten Ada-Programme — dem Lauf¬zeit¬system. Der Crosscompiler behandelt den gesamten Sprachumfang von For¬tran 77, und er erzeugt gut les- und wartbare Ada-Programme, deren Laufzeiteffizienz nur wenig unter jener der ursprüng¬lichen Fortran-Programme liegt.
In der Kombination der angewandten Realisierungskonzepte mit der vollständigen Behandlung von Fortran 77 und der guten Laufzeiteffizienz der Zielprogramme liegt der eigentliche wissen¬schaft¬liche Neuigkeitswert dieses Systems, der es von anderen Systemen dieser Art abhebt.
Titel in Übersetzung | Crosscompiler explained by the Example of Translating Fortran to Ada |
---|---|
Originalsprache | Deutsch |
Verlag | Trauner Verlag Linz |
ISBN (Print) | 3-85320-671-9 |
Publikationsstatus | Veröffentlicht - 1994 |