Willkommen auf der Heimatseite der Veranstaltung
Abstrakte Systemprogrammierung
Auf dieser Seite finden sich Antworten auf die folgenden Fragen:
Inhalt
In der Veranstaltung soll gezeigt werden, daß zur Systemprogrammierung
--- hier im Sinne von: maschinennahe Programmierung --- nicht
notwendigerweise Sprachen verwendet werden müssen, an denen der
Fortschritt der Programmiersprachenwentwicklung der letzten zwanzig
Jahre spurlos vorübergegangen ist.
Konkret bedeutet dies, daß wir uns mit
- der Programmierung grafischer Benutzeroberflächen,
- scripting, Parsing, Matching und Pretty-Printing,
- nebenläufiger Programmierung,
- Web-Programmierung (CGI-Skripte)
und anderem in einer modernen, funktionalen Programmiersprache (in
diesem Fall Haskell) beschäftigen
wollen. Hierbei ist die Verwendung einer funktionalen Sprache kein
Selbstzweck, sondern sie erlaubt uns, die verwendeten und benötigten
Konzepte klarer und deutlicher herauszustellen.
Die Veranstaltung richtet sich an drei Interessentenkreise:
- Studenten, die Haskell in ihren ersten Semestern kennen und
schätzen gelernt haben, sich aber nicht vorstellen konnten, es auch
für etwas aus dem ``richtigen Leben'' (wie oben) benutzen zu können;
- Studenten, die Tcl, Perl, bash-Skripte und ähnliches kennen und
nicht schätzen gelernt haben, und die nach weniger
kryptischen, abstrakteren Sprachen für diese Zwecke suchen;
- Studenten, die weder das eine noch das andere kennen, aber einen
überblick über die o.a. Konzepte erhalten möchten.
Organisatorisches
Die Veranstalter sind Christoph
Lüth <cxl@informatik.uni-bremen.de> und
George Russell <ger@informatik.uni-bremen.de>.
Die Veranstaltung besteht aus Vorlesungen und Übungen. Die
Vorlesung findet
Dienstags um 10:00 im MZH 7250
statt. Die Übungen sind weitgehend selbstbetreut
(insbesondere entfällt der im VL-Verzeichnis angegebene
Donnerstagstermin --- Fragen werden aber jederzeit per Mail
angenommen). Der erste Termin ist Dienstag, der 19. Oktober 1999, der
aber nur organisatorischer Natur ist; mit dem Stoff geht es erst am
26. Oktober los.
Für den Leistungsnachweis gibt es 5 Übungsblätter, in denen in
loser Folge ein kleines Projekt erarbeitet wird. Hierbei soll es sich
um ein Tool handeln, welches die Verwaltung einer Bibliographie
(Literarurliste) erlaubt (mit einer netten graphischen
Benutzeroberfläche natürlich), sowie deren Darstellung auf dem
Netz. Wie immer behalten wir uns zur Überprüfung der individuellen
Leistung Fachgespräche vor.
Für den übungsbetrieb benutzen wir übrigens den Haskell-Compiler
ghc, nicht den vielleicht noch bekannten Interpreter
hugs.
Übungsblätter und Vorlesungsfolien
Hier sind die Kopien der Vorlesungsfolien:
- 26.10.1999: dvi, PS
Dazu die Beispielprogramme
echo.hs
,
cntwords.hs
.
- 02.11.1999: dvi, PS
Dazu die Beispielprogramme
count.hs
,
cleanup.hs
,
myio.hs
.
- 09.11.1999: dvi, PS
Dazu die Beispielprogramme
SimpleParser.hs
,
SExpr.hs
,
Expr.hs
.
- 16.11.1999: dvi, PS
Dazu die Beispielprogramme
happy-simple-lisp.y
,
happy-lisp.y
,
happy-expr.y
,
happy-mon-expr.y
,
happy-conflict.y
.
- 23.11.1999: dvi, PS
Dazu die Beispielprogramme
simple.java
,
simple.hs
und
p.java
.
- 30.11.1999: dvi, PS
Dazu die Beispielprogramme
philo_sem.hs
,
philo_sync.hs
,
philo_ev.hs
und das passende Makefile
als
ein Tar-File philo.tar
.
- 07.12.1999: dvi, PS
Dazu die Beispielprogramme
waffle.hs
und
Hello1.hs
mit
Hello2.hs
und einem Makefile
als
ein Tar-File hello.tar
.
- 14.12.1999: dvi, PS
Dazu die Beispielprogramme ListEx.hs
,
MenuEx.hs
and MenuEx.hs
in examples.tar
.
- 20.12.1999: dvi, PS
Dazu die Beispielprogramme CanvasEx.hs
,
XmasCanvas.hs
, Blobs.hs
und
TextWidEx.hs
in more_examples.tar
.
- 11.01.2000: dvi, PS
- 18.01.2000: dvi, PS
Dazu das CGI-Paket
(tar-File oder
nur als Haskell-Quelle),
das Beispielformular SimpleForm
,
das Formular
TestForm
und das Auswertungsskript
evalasp.cgi
.
- 25.01.2000: dvi, PS
- 01.02.2000: dvi, PS
Dazu Beispiele zu existentielle Typen, und das kurze Beispiel für das
exponentielle Verhalten der exponentielle der Haskell Typinferenz.
- 08.02.2000: dvi, PS
- Technischer Anhang: dvi, PS
Im DVI-Format lassen sich die Folien mit xdvi -paper a4r -s 5
slides?.dvi bequem betrachten, im PS-Format mit psnup -4
slides?.ps | lp papiersparend ausdrucken. Achtung, im DVI-Format
fehlen allerdings die eingebetten Bilder.
Ferner hier die Übungsblätter:
Von den sechs ausgegebenen Übungsblätterrn müssen fünf bearbeitet
werden.
Feedback
Die Veranstalter bitten um Eure Mithilfe!
Wie hat Euch die Veranstaltung gefallen? Was kann besser gemacht werden?
Bitte füllt diesen Fragebogen aus, reicht
ihn mir
herein und laßt es uns wissen!
Lokale Dokumentation, und Links in die Wilde Weite Welt
Haskell-Dokumentation
Hier sind die aktuelle Haskell-Dokumentationen (das meiste lokal):
- A Gentle
Introduction to Haskell.
- Haskell
98 report, auch als Postscript
und PDF.
- Haskell 98 library report, auch als Postscript
und PDF.
- The Glasgow
Haskell Compiler User's Guide, auch als Postscript
- The Haskell Parser Generator
Happy, auch
als Postscript.
- Index der lokalen
Haskell98-Dokumentation.
- UniForM Dokumentationen:
- Concurrency Toolkit Reference Manual:
PS,
HTML
- HTk Reference Manual:
PS,
HTML,
- Subsystem Interaction Manager Manual:
PS,
HTML.
- Zu CGI-Skripting in Haskell:
- Papier zu H/Direct und COM, in abnehmender Aktualität:
Ferner H/Direct
Dokumentation und das User Manual. Letzteres
enthält auch mehr Informationen und Links zu IDL.
- Informationen über den lokalen
CVS-Server.
- Ausserdem noch die externe, offizielle Haskell home page
Wer Haskell lernen, oder sein Gedächtnis auffrischen möchte, kann
natürlich noch auf der PI1-Seite
vom letzten WS nachschauen. Die dort referenzierte
Haskell-Dokumentation ist allerdings veraltet, weil es inzwischen eine
neue, standardisierte Version der Sprache gibt, die als Haskell98
bekannt ist --- siehe die Links oben.
Links über Systemprogrammierung:
Die folgenden Links sind Beispiele für die "abstrakte
Systemprogrammierung" in unserem Sinn (aber nicht notwendigerweise
alle Gegenstand des Kurses):
Christoph Lüth
Last modified: Tue Nov 16 14:49:12 MET 1999