Umfang

Der Umfang der Arbeit lässt sich so anpassen, dass das Thema als Bachelorarbeit oder Projektarbeit bearbeitet werden kann.

Empfohlene Vorkenntnisse

  • gute Kenntnisse in Clojure (z.B. durch Besuch der Veranstaltung “Einführung in die funktionale Programmierung”)
  • gute Kenntnisse in Compilerbau (z.B. durch Besuch der Veranstaltung “Compilerbau”)
  • Kenntnisse der B Sprache (z.B. durch Besuch der Veranstaltung “Sicherheitskritische Systeme”)

Problem

B ist eine Spezifikationssprache, die vorallem für sicherheitskritische Systeme verwendet wird. Im gewöhnlichen Workflow werden B Maschinen schrittweise modelliert, verfeinert und verifiziert. Sobald die letzte Verfeinerungsstufe (eine low-level Teilmenge von B, auch B0 genannt) erreicht wird und alle Verfeinerungen verifiziert sind, wird anschließend Code für die Ausführung generiert. B2Program ist ein Codegenerator von B nach höheren Programmiersprachen. Aktuell werden die imperativen Programmiersprachen Java, C++ und Python unterstützt. Verglichen mit den meisten anderen Codegeneratoren werden auch B Maschinen auf abstrakteren Ebenen unterstützt. Es ist also keine Verfeinerung nach B0 erforderlich.

Die Aufgabe dieser Arbeit besteht darin B2Program um die funktionale Programmiersprache Clojure zu erweitern. Hierbei soll auch ein Konzept entwickelt werden wie man allgemein B nach einer deklarativen Programmiersprache übersetzen könnte. Somit sollen die Konzepte auch für andere deklarative Programmiersprachen wie z.B. Prolog nützlich sein.

Minimalanforderungen

  • funktionsfähige Erweiterung von B2Program um Clojure
  • Entwicklung eines Konzeptes wie man allgemein B nach einer deklarativen Programmiersprache übersetzen könnte

Erweiterungen

  • empirische Auswertung der Performance

Kontakt

Fabian Vu
Raum 25.12.02.50 · fabian.vu@hhu.de