University of Konstanz
Database & Information Systems Group
Prof. Marc H. Scholl

Deklarative Programmierung

Schedule

Material

Lecture Slides

Chap.TitleDateFile
allAlle Folien in einem File18.07.pdf

Course Description

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.

Contacts