Uni-Dortmund
14. März 2017Fachprojekt 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 erstellenHaskell 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