Am Lehrstuhl wurden für die Verifikation von Programmanalysen formale Semantiken für Java und C++ entwickelt, mit denen auch Programme ausgeführt werden können. Diese können jedoch keinen echten Quellcode verarbeiten, sondern brauchen bereits den abstrakten Syntaxbaum des Programms. Für C++-Programme gibt es bereits ein entsprechendes Konvertierungstool als Eclipse-Plugin. Für Java fehlt noch ein solcher Compiler.
Aufgabe:
Ziel der Studienarbeit ist es, ein Konvertierungstool von Java Source Code in den abstrakten Syntaxbaum von Jinja zu erstellen. Dabei können wesentliche Teile des (in Java geschriebenen) Tools für C++-Programme wiederverwendet werden.
Neben der reinen Syntaxanalyse muss auch syntaktischer Zucker durch die in Jinja vorhandenen Sprachkonstrukte ersetzt werden. Dazu gehört beispielsweise:
- for durch while-Schleifen ersetzen
- Überladene Methoden auflösen
- Arithmetische Operatoren expandieren (i++ wird zu i=i+1)
- Default-Konstruktoren generieren
- Initialisierungscode für Felder in die Konstruktoren verschieben
Voraussetzungen
- Java-Programmierkenntnisse
- Compilerbau I
- Eclipse-Programmierkenntnisse sind von Vorteil
Veröffentlichungen
Betreuer
Studenten