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
- 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
- Blatt 1 (24./31.10.2017)
- Blatt 2 (6.11.2017), Vorgaben
- Blatt 3 (13.11.2017)
- Blatt 4 (27.11.2017)
- Blatt 5 (27.11./4.12.2017), Vorgaben
- Blatt 6 (4./11.12.2017), Vorgaben
- Blatt 7 (11./18.12.2017), Vorgaben
- Blatt 8 (8.1.2018)
Literatur
- P. Pepper; P. Hofstedt:Funktionale Programmierung. Sprachdesign und Programmiertechnik.Springer, 2006.
- P. Pepper: Funktionale Programmierung in OPAL, ML, HASKELL und GOFER. Springer, 2003.
Weitere Literaturhinweise wurden in der Veranstaltung gegeben.
Dokumentation
Haskell
- Haskell allgemein
- Bücher
- Tutorials
- Spezifikation von Haskell inklusive grundlegender Bibliotheken
- erweiterter Satz von Bibliotheken
- leistungsstarke API-Suche
- GHC-Benutzerhandbuch
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.