Die Dissertation liefert einen Beitrag zur Entwicklung von Compilern funktionaler Sprachen zur Erzeugung von Zielcode in einer höheren prozeduralen Programmiersprache. In der Dissertation werden mehrere Implementationstechniken funktionaler Sprachen analysiert, wobei für jede Technik ein Verfahren zur Realisierung eines auf der Übersetzung in eine prozedurale Sprache basierenden Compilers angegeben wird. Durch die verschiedenen Implementationsverfahren, die in der Arbeit analysiert bzw. definiert wurden, sind die beiden großen Klassen funktionaler Sprachen abgedeckt worden: strikte und nicht-strikte funktionale Programmiersprachen. Die Dissertation kann in drei größere Teile gegliedert werden, die sich mit folgenden Bereichen beschäftigen: Direkte übersetzungen funktionaler in prozedurale Programmiersprachen Übersetzung des Codes der abstrakten SECD-Maschine in eine prozedurale Sprache Erzeugung des Zielcodes in einer prozeduralen Programmiersprache bei Graph-Reduktion-basierten Implementationstechniken. Im ersten Teil, dem Schwerpunkt der Arbeit, wird eine über existierende Ansätze hinausgehende Transformation einer einfachen strikten funktionalen Programmiersprache (erweiterter Lambda-Kalkül) in den Code einer prozeduralen Zielsprache eingeführt und durch ein formales System von Transformationsregeln beschrieben. Die Transformation zeichnet sich durch Transparenz und Einfachheit (Erzeugung minimalen Codes) aus. Im zweiten und dritten Teil werden die aus der Literatur bekannten Implementationstechniken modifiziert bzw. optimiert, um Zielprogramme in einer höheren prozeduralen Programmiersprache erzeugen zu können. / This work contributes methods for the design and implementation of translation schemes for functional programming languages with procedural programming languages as a target. The dissertation analyzes different implementation techniques of functional languages. For each technique an approach is defined for the implementation of a compiler that translates the functional source language into a procedural target language. The analyzed techniques cover both classes of functional languages, strict and non-strict ones. The work is structured into three parts with the following topics: direct translation of functional programming languages into procedural programming languages; translation of the code of the SECD-abstract machine into a procedural language; emission of a target code in a procedural language by graph-reduction-based implementation techniques. In the first part, we give a formal definition for translating a simple functional language (syntacticly sugared lambda calculus) into the code of a procedural programming language. The defined transformation is simple and transparent. In the second and the third part, existing translation schemes are modified, i. e. two known implementation techniques are optimized to emit target code in an procedural language.
Identifer | oai:union.ndltd.org:HUMBOLT/oai:edoc.hu-berlin.de:18452/15005 |
Date | 03 July 1998 |
Creators | Macos, Dragan |
Contributors | Fehr, Elfriede, Burkhard, Hans-Dieter, Bothe, Klaus |
Publisher | Humboldt-Universität zu Berlin, Mathematisch-Naturwissenschaftliche Fakultät II |
Source Sets | Humboldt University of Berlin |
Language | German |
Detected Language | German |
Type | doctoralThesis, doc-type:doctoralThesis |
Format | application/pdf, application/postscript |
Page generated in 0.0019 seconds