German 5

Download Implementierung funktionaler Programmiersprachen: by Michael Gloger PDF

By Michael Gloger

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.

Show description

Read or Download Implementierung funktionaler Programmiersprachen: Codegenerierung, Speicherverwaltung und Testsysteme für Sprachen mit verzögerter Auswertung PDF

Best german_5 books

Die Kunst zu überzeugen: Faire und unfaire Dialektik

Dieses Buch fasst das information moderner Dialektik in verst? ndlicher und praxisbezogener shape zusammen. Der Grundlagenteil bietet die Voraussetzungen erfolgreicher Argumentation. In den weiterf? hrenden Abschnitten zu konkreten Anwendungssituationen erfahren Sie, wie Sie Ihre ? berzeugungsf? higkeit in schwierigen Gespr?

Additional info for Implementierung funktionaler Programmiersprachen: Codegenerierung, Speicherverwaltung und Testsysteme für Sprachen mit verzögerter Auswertung

Example text

Wegen des Polymorphismus, dürfen alle Zellen, mit denen eine Suspension überschrieben werden kann, höchstens so groß sein wie die kleinste mögliche Suspension. Da in der LML Implementierung die kleinste Suspension drei Speicherworte belegt, werden alle Datenstrukturen, die mehr Speicher belegen, durch eine Kapitel 2. 8: SPARC-Code für den isevaluated-Test "Kopfzelle" von drei Speicherworten repräsentiert. Diese enthält einen Zeiger auf den Vektor mit den restlichen Komponenten der Datenstruktur.

Falls dies der Fall ist, beschreibt die Kennung auch noch die Größe des referenzierten Objekts. Mit dieser Methode erhält man die folgende Repräsentation für das obige Beispiel: 7 +-l 42 I 3---l 98 I Die Methode ist besonders effizient wenn sie durch spezielle Hardware unterstützt wird. Deshalb wird sie häufig in Spezialrechnern eingesetzt [Ung86, TNL +86]. Sie kann aber auch ohne spezielle Hardware effizient 28 Kapitel 2. Einführung benutzt werden [SH87]. In diesem Fall wird ein Teil der Bits eines Speicherwortes für die Kennung und nur der restliche Teil für die eigentliche Information verwendet.

Da die Codeadresse ein ganzes Speicherwort benötigt, muß die Konstruktornummer einer Konstruktorzelle entweder in einem zusätzlichen Speicherwort innerhalb der Konstruktorzelle oder innerhalb des durch die Codeadresse referenzierten Codes gespeichert werden. Im ersten Fall wird beim Anlegen der Zelle eine zusätzliche Schreiboperation benötigt. Das Laden von Rtag mit der Konstruktornummer benötigt dann ebenfalls eine Speicheroperation. Diese ist überflüssig falls die Konstruktornummer nach dem isevaluated Test nicht benötigt wird.

Download PDF sample

Rated 4.89 of 5 – based on 14 votes