Moderne Funktionale Programmierung

Veranstaltungsdaten:

  • Modulnr.: 12349
  • Umfang: 2 SWS VL + 2 SWS UE, insg. 6 Credit-Points
  • Vorlesung: Donnerstag, 2. Block, HG 0.19 (Hofstedt)
  • Übung: Montag, 4. Block, LG1A 121 (Hofstedt)

Studiengänge

  • Informatik, B.Sc. (Komplex „Grundlagen der Informatik“)
  • Informations- und Medientechnik, M.Sc. (Komplex „Methodische Grundlagen“)
  • Angewandte Mathematik, M.Sc.

Inhalt

In der Veranstaltung werden moderne funktionale Programmiertechniken behandelt. Gegenstand sind u.a. die Themen Parserkombinatoren, Typklassen, funktionale Datenstrukturen, monadische Programmierung und die Implementierung paralleler Systeme. Dabei verwenden wir Haskell als Referenzsprache.

Die Veranstaltung umfasst u.a. folgende Themengebiete:

  • theoretische und praktische Grundlagen funktionaler Sprachen und der funktionalen Programmierung
  • funktionale Algorithmen (Funktionen höherer Ordnung, funktionale Scanner und Parser, Fixpunkte, Gleichungssysteme und transitive Hüllen)
  • Typisierung und Typklassen
  • funktionale Datenstrukturen
  • Deduktion von Programmen
  • Monaden
  • funktional-logische Programmierung

Vorlesungsfolien 

Aufgabenblätter

Literatur

Weitere Literaturhinweise wurden in der Veranstaltung gegeben.

Dokumentation

Haskell

Opal

Softwareinstallation

Haskell

In der Regel ist es am besten, die Haskell Platform zu installieren. Diese enthält u.a. den Glasgow Haskell Compiler und das Programm cabal-install, mit dem bei Bedarf Haskell-Programme und -Bibliotheken von Hackage installiert werden können.

Für einige Linux-Distribitionen wird die Haskell Platform noch nicht (richtig) unterstützt. Benutzer von Ubuntu 10.4 können auch die Pakete ghc6 und cabal-install installieren. Fehlende Haskell-Software kann dann bei Bedarf mittels cabal-install nachinstalliert werden.

Prüfungstermine

Prüfungsform: Mündliche Prüfung. Bei erhöhter Teilnehmerzahl kann die Prüfung auch schriftlich durchgeführt werden.

Prüfungstermin:  Wird noch bekannt gegeben.  

Vorherige Anmeldung und Terminvergabe im Sekretariat notwendig.