Kopfzeile

Deklarative Programmierung

Fr 10-12/F 423 und Do 12-14/F 426, Start: 16.11.
(V4)
Doz.: Torsten Grust

Adressaten:

Studierende im Master- und Bachelorstudium 'Information Engineering'

Inhalt:

Diese Vorlesung führt in eine Welt von Programmiersprachen ein, die sich von der der klassischen imperativen Sprachen (wie etwa Pascal, C, Java) grundlegend unterscheidet: die Welt der funktionalen Programmiersprachen (hier: Haskell).
Auf einer einzigen Kernidee -- der Anwendung von Funktionen -- basierend, kann man einen Programmierstil aufbauen, der oft zu überraschend kurzer und sehr eleganter Formulierung von Algorithmen führt. Funktionale Sprachen besitzen Eigenschaften (Stichwort: referentielle Transparenz), die ihre Programme leicht analysierbar, transformierbar (optimierbar) und kombinierbar machen.
Problemlösung in der funktionalen Welt orientiert sich enger am Problem als an der Maschine. Das macht diese Sprachen zur idealen Spielwiese, auf der auch mit komplizierteren Datenstrukturen und Algorithmen gearbeitet werden kann, ohne sich von vornherein mit den Details der Implementierung befassen zu müssen. Teilweise kann man funktionale Programme aus einem gegebenen Problem automatisch ableiten (Stichwort: Programmsynthese).
Letztlich können auch "imperative Programmmierer" hier eine neue Sicht auf ihre imperativen Programme gewinnen: Kenntnis einer funktionalen Sprache kann zu einem disziplinierten und sauberen imperativen Programmierstil führen.

Literatur:

R. Bird, P. Wadler, "Introduction to Functional Programming", Prentice Hall International Series in Computer Science, 1988 (second edition 1999) [verfügbar in der Bibliothek]

S. Thompson, "Haskell -- The Craft of Functional Programming", Addison-Wesley, 1996 (second editition 1999) [verfügbar in der Bibliothek]

J. Fokker, "Functional Programming", 1997 [verfügbar auf dem Web unter URL http://www.cs.uu.nl/~jeroen/courses/fp-eng.ps.gz]

Lehrmethoden:

Vorlesung anhand von Foliensätzen, die den Studenten vorher zur Verfügung stehen, teilweise Online-Demonstrationen. Vorwiegend praktisch orientierte Übungen (Programmierung und Analyse von Haskell-Skripten an Rechnern der Informatik). Haskell-Interpreter stehen zusätzlich für alle gängigen Rechnerplattformen frei zür Verfügung.

Leistungsnachweis:

Klausur oder Kolloquium (kurze mündliche Prüfung) nach Absprache mit den Studierenden.

ECTS:

Es können bei erfolgreicher Teilnahme 6 Punkte angerechnet werden.
Zurück zur Übersicht
Dagmar Michels/26.07.00/update: 23.11.00