Moderne Funktionale Programmierung

Veranstaltungsdaten:

  • Modulnr.: 12349
  • Umfang: 2 SWS VL + 2 SWS UE, insg. 6 Credit-Points
  • Vorlesung: Donnerstag, 2. Block, HG 019 (Hofstedt)
  • Übung: Dienstag, 4. Block, HG 0.18 (Hofstedt)
  • Erste Vorlesung: 12.10.2017
  • Erste Übung: 17.10.2017

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 

  • 1) Vorbemerkungen
  • 2) Elementare Konzepte der FP
  • 2.1) Testen und Profiling
  • 2.2) Funktionale Scanner und Parser
  • 2.3) Lambda-Kalkül
  • 2.4) Lazyness
  • 3.1) Typklassen
  • 3.2) CPOs und Fixpunkte
  • 3.3) Gleichungssysteme
  • 4.1) Funktionale Datenstrukturen
  • 4.2) Maps und Programmableitung 
  • 4.3) Monaden
  • 5) Funktional-logische Programmierung

Aufgabenblätter

Die Aufgabenblätter werden im  Link zu einer externen Seite Moodle-System veröffentlicht.

Die Einschreibung in den Moodle-Kurs ist voraussichtlich ab Mitte September möglich.

Literatur

Weitere Literaturhinweise wurden in der Veranstaltung gegeben.

Dokumentation

Haskell

Opal

Softwareinstallation

Haskell

In der Regel ist es am besten, die Link zu einer externen Seite Haskell Platform zu installieren. Diese enthält u.a. den Link zu einer externen Seite Glasgow Haskell Compiler und das Programm Link zu einer externen Seite cabal-install, mit dem bei Bedarf Haskell-Programme und -Bibliotheken von Link zu einer externen Seite 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.