Praktikum:

Funktionale Programmierung [FP-PR] (SoSe 2013)

Dr. David Sabel

Aktuelles
  • Teil 3 der Anleitung behandelt abstrakte Maschinen, der Teil ist bis zum Ende der Vorlesungszeit zu bearbeiten.
  • In der Anleitung und in den Folien zu Teil2 war ein kleiner Fehler in der Typisierungsregel für case-Ausdrücke, der jetzt korrigiert ist
  • Am Di, 21.Mai findet die Praktikumsbesprechung nicht in SR 11 statt. Wir treffen uns in Raum 216
  • Weitere kleine Fehler wurden in der Anleitung und in den Folien zu Teil2 korrigiert
  • Die Typregel für seq mit Gleichungen, war verkehrt, ist jetzt in der Anleitung und den Folien korrigiert
  • Teil 2 beschäftigt sich mit der Semantischen Analyse (Typcheck) und der Transformation in die Maschinennährere Sprache.
    Die Anleitung wurde an kleinen Stellen verbessert. Für Teil 2 sind die Aufgaben 5 bis 11 bis zum 11.Juni zu bearbeiten.
  • Teil 1 beschäftigt sich mit dem Lexen und Parsen und besteht aus den Aufgaben 1 bis 4 in der Anleitung und ist bis 7.Mai zu bearbeiten.
  • Der Output nach Aufruf von testexample.hs sollte so aussehen.
  • Das Praktikum beginnt mit der ersten Besprechung am 16.4. um 14 c.t. in Seminarraum 11.
Termine Regelmäßiges Treffen: Di, 14 c.t. in Seminarraum 11
Themen
  • Kurzbeschreibung

    Im Praktikum soll ein  Interpreter / Compiler für die nebenläufige funktionale (Kern-)sprache CHF implementiert werden. Neben den Phasen des Compilierens wird ein besonderer Schwerpunkt in der Implementierung verschiedener Varianten von abstrakten Maschinen zur verzögerten Auswertung funktionaler Programme liegen.

    Einen kurzen Überblick über das Projekt gibt das  Schaubild oben.

    Hierbei ist CHFi der Interpreter für die Programmiersprache, CHF

    Des weiteren ist zu sehen, dass drei aufeinander aufbauende abstrakte Maschinen implementiert werden sollen (Mark 1, IO-Mark 1 und Concurrent Mark 1). Hierbei unterstützen Mark 1 und IO-Mark 1 noch keine Nebenläufigkeit.

    Die Programme werden in der funktionalen Programmierspache Haskell unter Benutzung einiger Werkzeuge für Haskell implementiert. Insbesondere werden die folgenden Werkzeuge zum Einsatz kommen:
  • Anleitung
    • Die Anleitung zum Praktikum ist hier im PDF-Format abrufbar.
    • Der vorgegebene Quellcode, wird per CVS abrufbar sein. Genauere Informationen dazu gibt es während der ersten Besprechung.
  • Begleitmaterial
    • Das Begleitmaterial zum Praktikum ist enthält Erläuterungen zu einzelnen Themen des Praktikums, insbesondere zu CVS, den Haskell-Werkzeugen Happy und Haddock, sowie zur Haskell-Programmierung.
  • Forschungsartikel passend zu den Themen des Praktikums:
    • P. Sestoft: Deriving a lazy abstract machine, Journal of Functional Programming, Volume 7(03), S. 231-264, Cambridge University Press, 1997
      Aus dem Netz der Universität kostenlos abrufbar unter diesem Link.

    • D. Sabel, M. Schmidt-Schauß: A contextual semantics for concurrent haskell with futures. In Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming, S.101-112, New York, NY, USA, July 2011. ACM. © ACM, 2011.
      Aus dem Netz der Universität kostenlos abrufbar unter diesem Link

      Weitere Details sind im Technischen Bericht zu finden.

    • D. Sabel:An abstract machine for Concurrent Haskell with futures. In S. Jähnichen, B. Rumpe, and H. Schlingloff. Hrsg., Software Engineering 2012 Workshopband, Fachtagung des GI-Fachbereichs Softwaretechnik, (5. Arbeitstagung Programmiersprachen), Berlin, volume 199 der GI Edition - Lecture Notes in Informatics, S. 29-44, 2012. © Gesellschaft für Informatik e.V.

      Weitere Details sind im Technischen Bericht zu finden.

    • D. Sabel, M.Schmidt-Schauß: Conservative concurrency in Haskell. In N. Dershowitz, Hrsg. Proceedings of the 27th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS 2012), Dubrovnik, Kroatien, S. 561-570, June 2012. © IEEE.
  • Benutzung von Eclipse zur Verwaltung der Dateien mittels CVS
    • Eine detaillierte Anleitung ist hier zu finden.
  • Folien
Material

Zur Programmiersprache Haskell:

Informationen für einzelne Studiengänge

Master / Informatik:

Diese Veranstaltung ist Pflichtveranstaltung des Moduls M-FP-PR (8 CP). Das Modul ist dem Fachgebiet "Informatik der Systeme" und der Spezialisierung "Complex Software Systems" zugeordnet.

Diplom / Informatik:

Zuordnung: PT2


$Author: sabel $, $Date: 2013/07/08 21:06:22 $

uni ffm © 1997, 2004