[zurück zur Seite des Diplomanden- und Doktorandenseminars]

Abstract: Funktionale Entwurfsmuster für den Übersetzerbau

Im Rahmen meines Promotionsvorhabens (über Striktheitsanalyse funktionaler Sprachen) implementiere ich gerade einen Prototyp meiner statischen Analyse, also ein Compiler-Frontend für eine funktionale Sprache. Dabei habe ich verschiedene Entwurfsentscheidungen getroffen, um den Compiler, der in Haskell implementiert ist, übersichtlich, erweiterbar und (für andere Analysen) wiederverwendbar zu gestalten. In dem Vortrag versuche ich, diese Entwurfsentscheidungen zu verallgemeinern, was zu so etwas wie Entwurfsmustern führt.

Entwurfsmuster sind bekannt aus dem objektorientierten Softwareentwurf.

Die von mir vorgestellten Muster für den funktionalen Softwareentwurf stützen sich stark auf die Verwendung von Funktionen höherer Ordnung und auf die Lazyness der Implementationssprache Haskell.

Daß die zu übersetzende Sprache auch eine funktionale ist, ist hierbei nicht bedeutend, d.h. mit den gleichen Methoden ließe sich ein Java-Compiler implementieren, bzw. ein Framework zur statischen Analyse von Java-Quellprogrammen.

Letzteres ist ein spannender Punkt, da ja eine Entwicklung eines solchen Frameworks in Java hier am Institut im Gange (oder abgeschlossen?) ist. Deshalb erhoffe ich eine rege Diskussion und daraus weitere Anregungen für die Implementierung meines Prototypen.

Dirk Pape (9.3.1999)