Aufgabenstellung

Werbung
Universität Stuttgart
Institut für Softwaretechnologie
Programmiersprachen und Übersetzerbau
Prof. Dr. Erhard Plödereder
Studienarbeit
Generierung der IML für Ada-Programme
Bearbeiter: Martin Müller
Hintergrund
Die Ada Semantic Interface Specification (ASIS) ist eine standardisierte implementierungsunabhängige Schnittstelle für Ada-Compiler, die es ermöglicht, compilerinterne Strukturen abzufragen und in ihnen zu navigieren. ASIS stellt syntaktische und rudimentäre semantische Informationen zur Verfügung. Die syntaktische
Struktur ist durch einen abstrakten Syntaxbaum dargestellt. Beispiele für Werkzeuge, die von ASIS profitieren, sind Browser, Pretty-Printer, Code-Analysierer, StyleChecker und Dokument-Generatoren.
IML (InterMediateLanguage) ist eine detaillierte, programmiersprachenunabhängige Zwischendarstellung in Form eines annotierten Syntaxgraphen. Diese dient als
Grundlage für weitere Analysen, wie zum Beispiel Kontroll- und Datenfluss-Analysen.
Die IML-Bibliothek liegt in Ada vor und stellt Operationen zur Erzeugung und Manipulation der Zwischendarstellung bereit. Die Bibliothek wird zum größten Teil
durch einen Generator aus einer Spezifikation erzeugt.
Der Resource Flow Graph (RFG) des Bauhaus-Projektes ist eine abstrakte Sicht
auf ein Programm mittels eines Graphen. Knoten im Graph sind globale Programmentitäten (zum Beispiel Typen, Variablen, Konstanten und Prozeduren).
Bereits abgeschlossen sind die Arbeiten von Achim Kern und Sascha Neinert,
die die Generierung des RFG für Ada-Programme mittels Asis zur Aufgabe hatten.
Aufgabenstellung
Die Aufgabe der Studienarbeit besteht darin, die IML direkt aus dem über ASIS
zugänglichen attributierten Syntaxbaum für Ada zu generieren. Dazu soll die ASISImplementierung des Gnu-Ada-Compilers GNAT verwendet werden.
Im einzelnen müssen die folgenden Aufgaben gelöst werden:
• Entwicklung eines Schemas zur Repräsentation von Ada95 Programmen in
IML.
• Gegebenenfalls muss die IML-Bibliothek erweitert werden. Die hierzu notwendigen Änderungen sollen vornehmlich in der Spezifikation, aus der die
eigentliche Bibliothek generiert wird, durchgeführt werden.
• Erstellung eines Frontends, das mit Hilfe von ASIS die Zwischendarstellung
IML für Ada95-Programme aufbaut.
• Umfangreiche Tests sind mit einer zu entwickelnden Test-Suite aus Ada95Programmen durchzuführen. Außerdem muss die Korrektheit stichprobenhaft bei mehreren großen Programmen überprüft werden.
• Die Ergebnisse aus den Messungen und Tests sind zu dokumentieren.
Grundsätzlich soll vollständige Sprachumfang von Ada95 unterstützt werden
soll. Das entwickelte Werkzeug soll für alle in Ada implementierten Anteile des
Bauhaus-Projekts IML generieren können.
Da die Implementierung weiter verwendet und gewartet werden soll, wird besonders auf gute Codequalität und sinnvolle Quelltext-Dokumentation Wert gelegt. Die Richtlinien und Stilvorgaben des Bauhaus-Projekts für Ada-Programme
sind einzuhalten.
Nach der Hälfte der Zeit ist ein Zwischenvortrag zu halten, in dem erste Ergebnisse präsentiert und offene Fragen diskutiert werden können. Die im Zusammenhang mit der Studienarbeit durchgeführten Untersuchungen und die erzeugten Ergebnisse sind ausführlich in einer schriftlichen Ausarbeitung zu dokumentieren.
Die Studienarbeit endet mit einem Abschlussvortrag.
Werkzeuge
Bauhaus IML-Bibliothek, IML-Generator, GNAT und ASIS-for-GNAT
Betreuer
Gunther Vogel (1.205)
Herunterladen