Zurück zum Vorlesungsverzeichnis
Uni-Dortmund
14. März 2017

Fachprojekt Rapid Prototyping mit Expander 2

Haskell ist auf der FP-Seite beschrieben. Expander2 ist ein interaktives Präsentations-, Test- und Verifikationssystem für funktionallogische und andere regelbasierte Programme. Die konkrete Projektaufgabe im SS 09 soll direkt an die LV Übersetzerbau anknüpfen und in Entwurf und Implementierung eines oder...

Erstelle deinen persönlichen Lernplan

Wir helfen dir, diesen Kurs optimal vorzubereiten — mit einem individuellen Lernplan, Tipps und passenden Ressourcen.

Jetzt Lernplan erstellen
Haskell ist auf der FP-Seite beschrieben. Expander2 ist ein interaktives Präsentations-, Test- und Verifikationssystem für funktionallogische und andere regelbasierte Programme. Die konkrete Projektaufgabe im SS 09 soll direkt an die LV Übersetzerbau anknüpfen und in Entwurf und Implementierung eines oder mehrerer monadischer Compiler bestehen. Analog zu den dort behandelten Beispielen Expr und JavaSig sollen eine abstrakte Syntax (Signatur) für ausgewählte Konstrukte imperativer, funktionaler, logischer und/oder objektorientierter Sprachen entwickelt und entsprechende monadische Parser geschrieben werden, die dann mit verschiedenen Algebren zu instanziieren sind, von denen einige die Parser zu Interpretern in jeweils adäquaten virtuellen Maschinen machen, während andere die Parser zu Compilern für assemblerartige Zielsprachen erweitern. Die Expr- und JavaSig-Parser haben gezeigt, wie arithmetische Ausdrücke bzw. iterative Programme üblicherweise compiliert und interpretiert werden. In Kapitel 5 des Übersetzerbau-Skriptes geht es um die entsprechende - aber weitaus aufwändigere - Compilation und Interpretation blockstrukturierter, prozeduraler Programme. Diese nach dem genannten Entwurfsschema im Detail auszuführen könnte eine der Teilaufgaben im Projekt sein. Die meisten anderen wichtigen Sprachkonstrukte und eine detaillierte Beschreibung ihrer jeweiligen Implementierung finden sich in dem kleinen, aber umfassenden Buch Übersetzerbau - Virtuelle Maschinen von Reinhard Wilhelm und Helmut Seidl. Was dort verbal beschrieben ist, sollte sich, dem genannten Entwurfsschema folgend, elegant und übersichtlich in Haskell realisieren lassen. Expander2 könnte hierbei eingesetzt werden, um Teile der Übersetzer oder Interpreter durch Visualisierung einzelner Rechenschritte zu testen. Technische Universität Dortmund SoSe 2013 Lehrstuhl Informatik I Univ.-Prof. Dr. Padawitz Peter