Abschlussarbeiten in der Arbeitsgruppe Programmiersprachen und Übersetzerkonstruktion

Diese Liste soll nur Ideen für mögliche Abschlussarbeiten (Bachelor, Master, Diplom) liefern. Einige Arbeiten sind z.B. eher Masterarbeiten, aber einfachere Teilaspekte könnten auch in einer Bachelorarbeit behandelt werden. Ebenso können die Themen auch variieren. Diese Liste ist auf keinen Fall als vollständig anzusehen! Um ein konkretes Thema für eine Abschlussarbeit entsprechend Ihres bisherigen Studiums und Ihrer Interessen zu finden, sollten Sie am besten Michael Hanus kontaktieren. Weitere Ideen kann man eventuell auch bei den abgeschlossenen Diplom- und Masterarbeiten finden.

Anmerkung: Die meisten der Themen liegen im Bereich der Entwicklung und Anwendung deklarativer Programmiersprachen, insbesondere der Multi-Paradigmen-Sprache Curry, die die wichtigsten Eigenschaften von logischen, funktionalen und nebenläufigen Sprachen vereinigt. Die Vorteile von Curry liegen in der Programmiersicherheit (polymorphes Typkonzept, Module, abstrakte Datentypen), leichtere Wartbarkeit und Verifizierbarkeit durch ein höheres Programmierniveau als in klassischen imperativen Sprachen und hohe Synchronisationsmechanismen zur Entwicklung zuverlässiger verteilter Systeme. Wer mehr zu Curry lesen möchte, findet hier einen kurzen Übersichtsartikel und hier einen etwas längeren Übersichtsartikel zur Integration logischer und funktionaler Programmiersprachen. Außerdem gibt es auch eine ausführliche Sprachbeschreibung.

Wer sich für andere Programmiersprachen oder andere programmiersprachliche Aspekte des Systementwurfs interessiert, ist ebenfalls willkommen und sollte dies persönlich mit Michael Hanus diskutieren.

Funktional-logische Modelltransformationen
In dieser Abschlussarbeit sollen funktional-logische Abstraktionen für die Realisierung von Modelltransformationen erarbeitet werden. Dazu ist eine entsprechende Bibliothek in der funktional-logischen Programmiersprache Curry [1] zu entwickeln und deren Nutzbarkeit durch die Realisierung geeigneter Beispieltransformationen nachzuweisen.
Eine genauere Beschreibung ist hier zu finden.
Android-Implementierung deklarativer Sprachen
Implementierung deklarativer Sprachen (z.B. ein Kern von Curry) auf dem Smartphone-Betriebssystem Android. Neben der eigentlichen Implementierung ist die Programmierung von Benutzerschnittstellen wichtig. Hierzu soll geprüft werden, inwieweit der allgemeine Rahmen zur Programmierung von Benutzerschnittstellen in deklarativen Sprachen, der in einer früheren Diplomarbeit entwickelt wurde (dazu gibt es auch eine Veröffentlichung), hier verwendet werden kann.
Dokumentationsumgebung für deklarative Sprachen
Curry wie auch viele andere Sprachen besitzt ein Werkzeug, um automatisch HTML-Dokumentationen aus Quellprogrammen zu generieren. Momentan erfolgt dies (ähnlich wie bei javadoc) statisch, d.h. für neue Versionen ist stets ein separater Generierungslauf notwendig. Im Rahmen dieser Arbeit soll eine dynamische Umgebung (mittels Client-Server-Techniken) geschaffen werden, mit der diese Dokumentationen direkt bei jeder Quelltextänderung zur Verfügung stehen.
Java-WUIs: Typorientierte Programmierung von Web-Schnittstellen in Java:
Erzeugung dynamischer Webseiten zur typkorrekten Manipulation von Daten in Java-Programmen; hierzu soll untersucht werden, inwieweit der für deklarative Sprachen entwickelte Rahmen in Java in ähnlich eleganter Form umgesetzt werden kann.
Curry Server Pages: High-level Programmierung von Webseiten
(Einbettung von Curry-Code in Webseiten, Übersetzung nach PHP o.ä.)
Constraint-Curry: Deklarative Programmierung von Optimierungsproblemen
(Realisierung einer generischen Schnittstelle zur Integration beliebiger Constraint-Löser in Curry, Anwendung mit konkreten Constraint-Lösern)
TC-Curry: Erweiterte Typsysteme für logisch-funktionale Programme
(Erweiterung von Curry um Typklassen)
Terminationsanalyse für deklarative Programme
(Erweiterung von Terminationsanalysen für rein logische oder funktionale Programme, Anschluss von Terminationsanalysewerkzeuge wie AProVE zur besseren Übersetzung von dynamischen Curry-Webseiten nach JavaScript)
Verklemmungsanalyse für nebenläufige deklarative Programme
(Herleitung hinreichender statischer Kriterien zur sicheren Ausführung nebenläufiger deklarativer Programme)

Auswahl abgeschlossener Arbeiten


Michael Hanus

Valid XHTML 1.0 Transitional