Strukturen der funktionalen Programmierung
VL+UE 12 113 11651 Strukturen der funktionalen Programmierung
Prof. Dr. R. Loogen
Mi, 9.15-10.00 Uhr, Do, 9.15-11.00 Uhr, jeweils HS IV (Lahnberge)
Beginn: 18.10.2006, Achtung: Am 26.10.2006 findet die Vorlesung im HS I statt.
Übungstermin Di, 11.00 - 13.00 Uhr, HS IV (Lahnberge), Jost Berthold
Beginn: 24.10.2006
Fachgebiet Klassifikation Semester Leistungspunkte Skript
Informatik Hauptstudium, theoretische Informatik >=5 8 -

Voraussetzungen: Grundkenntnisse in funktionaler Programmierung
Querverbindungen: Die Vorlesung bildet vor allem im zweiten Teil eine Vertiefung zur Vorlesung "Grundlagen des Compilerbaus".
Scheinkriterien: Ein benoteter Schein kann erworben werden durch
  1. aktive Teilnahme an den Übungen
  2. Bearbeitung von mindestens 50 % der Übungsaufgaben
  3. erfolgreiche Präsentation der Lösungen von mindestens zwei Übungsaufgaben
  4. Bestehen einer Klausur oder eines Kolloquiums


Übungsblätter: ...erscheinen donnerstags und sind am darauffolgenden Donnerstag abzugeben (Abgabe in Zweiergruppen erlaubt).
Die Aufgaben werden bei Rückgabe im Tutorium besprochen.
Auf jedem Blatt sind 12 Punkte erreichbar.

Im ersten Tutorium (24.10.06) können Fragen zur Vorlesung geklärt werden.


Blatt 1, 19.10.2006 (Postscript, PDF)
Blatt 2, 26.10.2006 (Postscript, PDF)
Blatt 3, 2.11.2006 (Postscript, PDF)
Blatt 4, 9.11.2006 (Postscript, PDF)
Blatt 5, 16.11.2006 (Postscript, PDF)    SECD mit bedarfsgesteuerter Argumentauswertung
Blatt 6, 23.11.2006 (Postscript, PDF)
Blatt 7, 30.11.2006 (Postscript, PDF)
Blatt 8, 7.12.2006 (Postscript, PDF)
Blatt 9, 14.12.2006 (Postscript, PDF)
Blatt 10, 21.12.2006 (Postscript, PDF)    Stackmaschine (fehlerhaft)
Blatt 11, 11.01.2007 (Postscript, PDF)    stackmaschine2.hs (korrigiert, für die Erweiterung)
Blatt 12, 18.01.2007 (Postscript, PDF)
Blatt 13, 25.01.2007 (Postscript, PDF) letztes Übungsblatt


Vorlesungsunterlagen SECD-Interpreter
Vollständige Halbordnungen
Beispiele für Übersetzung in Stackcode
Template Haskell-Beispiele: printf.hs (MainPrintf.hs), bspName.hs, AST.hs, derive.hs (MainDerive.hs)
Generische Programmierung in Haskell:
Folien von Ralf Hinze: Data-Generic Programming, Einbettung generischer Programmierung in Haskell
zugehörige Projekte: Generic Haskell, Generic Haskell II

Literatur:
  • Peter Thiemann: Grundlagen der funktionalen Programmierung, Teubner Verlag 1994, Errata
  • Martin Erwig: Grundlagen funktionaler Programmierung, Oldenbourg Verlag 1999
  • Anthony Davie: An Introduction to Functional Programming Systems Using Haskell, Cambridge University Press 1992.
  • R. Loogen: Parallele Implementierung funktionaler Programmiersprachen, Informatik-Fachbericht 232, Springer Verlag 1990
  • Paul Hudak: Conception, evolution, and application of functional programming languages, ACM Computing Surveys, Volume 21, Issue 3 (September 1989)
Zum Lambda Kalkül:
  • H.P. Barendregt: Lambda Calculus, North Holland 1997, 2nd ed.
  • C. Hankin: An Introduction to Lambda Calculi for Computer Scientists, King's College Publications 2004.
  • H.P. Barendregt, Functional programming and lambda calculus, in Jan van Leeuwen (ed.): Handbook of Theoretical Computer Science, Vol. B, Elsevier Publishers 1990.
  • B.J. Rosser: History of lambda calculus, Annals of the History of Computing, Vol. 6, No. 4, October 1984.


Inhalt: Folgende Themen werden behandelt:
  1. Der Lambda-Kalkül
  2. Das Hindley-Milner Typsystem
  3. Semantik rekursiver Funktionsgleichungssysteme erster Ordnung
  4. Übersetzung rekursiver Programme erster Ordnung in Stackcode
  5. Rekursive Funktionsgleichungssysteme höherer Ordnung: Semantik, Implementierung
  6. Semantische Modellierung von bedarfsgesteuerter Auswertung
  7. Meta-Programmierung
  8. Generische Programmierung


Zuletzt geändert: Thursday, 01-Feb-2007 11:30:17 CET