Funktionales und regelbasiertes Programmieren (FRP)
  • INF-MSc-304 Wahlveranstaltung im SoSe 2019
  • 4 SWS - 6 Credits
  • Vertiefungsmodul in den Masterstudiengängen Informatik und Angewandte Informatik,
    Forschungsbereich Software, Sicherheit und Verifikation
  • Wahl-LV im Hauptstudium der Diplomstudiengänge Informatik und Angewandte Informatik
    Schwerpunktgebiete 1, 4 und 5
  • Termine: Di+Fr, jeweils 14:15-15:45, im OH12, Raum 3.031
  • Beginn: 2. 4. 2019
  • Inhalt
    Die LV behandelt Konzepte und Methoden funktionaler und regelbasierter Programmierung sowie deren logisch-algebraische Grundlagen. Letztere wurden inzwischen stark weiterentwickelt, so dass sich heute nicht nur statische, konstruktive Datentypen mit funktionaler Programmierung realisieren lassen, sondern auch dynamische, zustandsbasierte, die wegen ihrer mathematischen Dualität zu den konstruktiven auch destruktive Datentypen genannt werden. Um die entsprechenden Sprachkonstrukte, z.B. von Haskell, wirklich zu verstehen und entwickeln zu können, bedarf es der Kenntnis kategorientheoretischer Grundbegriffe (Kategorie, Funktor, natürliche Transformation, Co/Algebra, Adjunktion, Co/Monade). Wir werden diese Begriffe zunächst in ihrer allgemeinen Form vorstellen und dann mit ihrer Hilfe Syntax, Semantik und Pragmatik konstruktiver wie auch destruktiver Datentypen präzisieren. Deren Entwurf, Illustration, Test und Verifikation wird mit Haskell-Modulen des Painter-Pakets (siehe LV Funktionale Programmierung) unterstützt, ggf. auch mit dem GUI-basierten rapid-prototyping tool Expander2.
  • Kompetenzen
    Die Studierenden üben die Verwendung von Sprachen, die nicht nur zur Implementierung, sondern bereits zum Entwurf auf höheren Abstraktionsebenen geeignet sind. Das fördert die Fähigkeit, Software auf einer soliden Grundlage präziser mathematischer Konzepte zu entwickeln und gleichzeitig die Ausführbarkeit im Auge zu haben, weil eben beides mit derselben Sprache geschehen kann. Diese Kompetenz ist heute kein Luxus mehr, sondern notwendig, um in der Fülle angebotener Entwurfs- und Implementierungswerkzeuge die für den jeweiligen Anwendungsbereich (Stichwort domain-specific language) und die jeweiligen constraints und requirements geeigneten auswählen zu können.
  • Materialien
  • Haskell-Lehrbücher sind auf der FP-Seite aufgelistet.
  • Haskell 98 Report
  • Haskell-Module:
  • Skript zu einer Vorläufer-Veranstaltung, die auf der seinerzeit fortgeschrittensten funktionalen Sprache Standard ML basiert.