Über Implementierung funktionaler Programmiersprachen
2.1 MS -Eine einfache funktionale Sprache Zur Beschreibung der Übersetzung funktionaler Sprachen wird in diesem Ab schnitt eine einfache Sprache definiert, die als gemeinsamer Kern der meisten modernen funktionalen Sprachen angesehen werden kann. Diese Sprache enthält keine Listen-oder Mengenabstraktionen und nur sehr eingeschränkte Möglich keiten des Pattern-Matching. Sie ist jedoch mächtig genug, um die im folgenden behandelten wesentlichen Probleme der Codegenerierung aufzeigen zu können. Wir wollen diese Sprache Mini-SAMPAE oder kurz MS nennen, da sie eine Un termenge der in SAMPAE zulässigen Programme definiert. Die Syntax von MS ist in den Abbildungen 2.1, 2.2 und 2.3 zusammengefaßt. Ein MS-Programm besteht aus einem einzigen Modul, das eine Liste von Definitionen und einen Ausdruck enthält. Der Wert dieses Ausdrucks ist das Ergebnis des Programms bei der Ausführung. In der globalen Definitionsliste können Typen und Funktionen definiert werden. Die Typen der definierten Funktionen können in MS nicht spezifiziert werden. Typdefinitionen dienen lediglich dazu, neue Datenkonstruktoren zu definieren. Es wird davon ausge gangen, daß eine frühere Übersetzungsphase, der Typ checker , das Programm auf Typkorrektheit überprüft und für jedes syntaktische Konstrukt einen Typ berechnet hat, der während der Codegenerierungsphase erfragt werden kann.
Mehr anzeigen