|
Willkommen auf der Heimatseite der Veranstaltung zur
fortgeschrittenen funktionalen Programmierung (auch als Abstrakte
Systemprogrammierung oder "Haskell für Erwachsene"
bekannt). Diese Seite soll Startpunkt für die im Netz verfügbaren
Informationen werden.
Ihr findet hier Inhaltliches,
Organisatorisches,
Kopien der Vorlesungsfolien und Aufgabenzettel,
und weiterführenden Literatur.
Inhaltliches
Generelles Thema der Veranstaltung sind Techniken, die benötigt
werden, um in einer funktionalen Sprache (hier Haskell) ernsthafte Programme wie
zum Beispiel einen Webserver
zu schreiben.
Im einzelnen sind dies:
- nebenläufige Programmierung (Concurrent Haskell, MVar's, Semaphoren);
- Ausnahmen, asymetrische Ausnahmen, und Ausnahmebehandlung;
- Monaden: was ist eigentlich eine Monade, die IO und
ST Monaden, Reader/Writer-Monaden und andere;
- language interoperability und das Foreign Function
Interface (FFI): von Haskell weg (call-out), nach Haskell
hin (call-in);
- vielleicht Programmierung von GUIs mit HTk oder wxHaskell,
vielleicht grafische Programmierung mit hOpenGL;
- Feinheiten des Typsystems wie existentielle Typen, höhere
Polymorphie und andere sexy types.
Organisatorisches
Die Vorlesung ist Mittwoch von 17 Uhr s.t. im MZH
8090.
Die VAK ist 03-705.53.
Scheinkriterien
Es wird drei etwas längere Aufgabenblätter geben, sowei eines in
den Ferien zu bearbeitendes Aufgabenblatt am Ende des Semesters. Diese
müssen erfolgreich bearbeitet werden (mehr als 40% der Punkte); am
Ende des Semesters findet eine kurze Rücksprache in der Gruppe statt,
um die Individualität der Leistung zu garantieren.
Vorlesungsfolien und Übungsblätter
- Alle Folien im Überblick: [PDF] (wird
ständig aktualisiert).
- Handouts pro Vorlesung (PostScript schwarz-weiß, zum Ausdrucken):
- [1] vom 27.10.04.
- [2] vom 03.11.04.
- [3] vom 10.11.04.
Dazu die Quellen:
Parser.hs,
Expr2.hs.
- [4] vom 17.11.04.
Dazu die Quellen:
Simple1.hs,
Simple2.hs
Simple2Sync.hs
Philo.hs
- [5] vom 24.11.04.
Dazu die Quellen:
Mutex.hs,
Talk1.hs.
- [6] vom 01.12.04.
Dazu die Quellen:
Talk2.hs.
- [7] vom 08.12.04.
Dazu die Quellen:
ffi.tar (zur Übersetzung siehe das
beiliegende Makefile).
- [8] vom 15.12.04.
Dazu die Quellen:
Spaceleak.hs,
Noleak.hs,
FibsFn.hs,
Sharing.hs.
- [9] vom 05.01.05.
Dazu die Quellen:
htkSimple0.hs,
htkSimple1.hs,
htkSimple2.hs,
hsMines.hs,
hsMines2.hs mit
MinesImages.hs und
Clock.hs,
HelloWx.hs,
BouncingBalls.hs.
Zum Übersetzen brauchen die ersten fünf -package htk, und die
letzten beiden -package wx.
- [10] vom 12.01.05.
Dazu die Quellen (als tar-Bündel):
hsw.tar.gz.
- [11] vom 19.01.05.
- [12] vom 26.01.05.
Dazu die Quellen:
test.java.
ExTypes.hs.
type_inference_blowup.hs.
- [13] vom 02.02.05.
- [14] vom 09.02.05.
Kleiner Tip: mit gunzip -c slides-X.ps.gz | psnup -r -4 |
lp (oder sogar -8 ) lassen sich die
Druckversionen papiersparend ausdrucken.
Übungsblätter
- 1. Übungsblatt (Version 1.0)
[PS]
[PDF],
ausgegeben am 15.11.04.
- 2. und 3. Übungsblatt (Version 1.0)
[PS]
[PDF],
ausgegeben am 08.12.04.
- Semsterübungsblatt (Version 1.0)
[PS]
[PDF],
ausgegeben am 09.02.05.
Weiterführende Literatur
|
|