392139 Implementierung funktionaler Programmiersprachen (S) (WiSe 2003/2004)

Kurzkommentar

Inhalt, Kommentar

In dieser Veranstaltung soll ein Compiler für eine funktionale Programmiersprache entwickelt werden. Hierbei orientieren wir uns an der Programmiersprache Haskell. Die im Seminarteil erarbeiteten theoretischen Grundlagen sollen dabei im Übungsteil in die Praxis umgesetzt werden.

Die typische Vorgehensweise beim Übersetzen einer funktionalen Programmiersprache ist folgende:

  • Übersetzen der syntaktisch reichen Ausgangssprache in eine einfache Kernsprache ("core language"). Diese Kernsprache ist sehr simpel gehalten, und daher relativ einfach zu implementieren. Gleichzeitig bietet sie aber die volle Leistungsfähigkeit der Ausgangssprache. Beispielweise lassen sich if-then-else Ausdrücke, Wächter und Pattern Matching auch durch case-Konstrukte ausdrücken.
  • Übersetzen der Kernsprache in Programmcode für eine abstrakte Zielmaschine. Hier gab es in der Vergangenheit eine Reihe von Entwicklungen, u.a. die Three Instruction Machine (TIM) und die G-Machine mit ihren Varianten (Spineless G-Machine und Spineless Tagless G-Machine (STGM)). Die im Haskell-Compiler GHC verwendete abstrakte Maschine ist die STGM.
  • Übersetzen des Codes für die abstrakte Maschine in konkreten Maschinencode. Hier wird üblicherweise C als eine Art "High-level-Assembler" verwendet. Da es für fast alle denkbaren Architekturen einen C Compiler gibt, hat diese Vorgehensweise den Vorteil, dass man die erzeugten Programme ohne Umwege auf einer Vielzahl von Rechnerarchitekturen verwenden kann.

Die einzelnen Phasen der Übersetzung sollen in Kleingruppen bearbeitet werden, so dass am Ende ein möglichst vollständiger Übersetzer von einer funktionalen Programmiersprache nach C vorliegt. Beginnen wollen wir in dieser Veranstaltung mit der Übersetzung der Kernsprache. Je nach Teilnehmerzahl können aber auch zusätzliche höhere Sprachkonstrukte (z.B. Pattern Matching, Listenbeschreibungen) hinzugenommen werden.

Entsprechend dem Thema der Veranstaltung, soll der Übersetzer selbst in einer funktionalen Sprache entwickelt werden. Hier bietet sich natürlich Haskell an.

Teilnahmevoraussetzungen, notwendige Vorkenntnisse

Das Seminar und die Übung bauen direkt aufeinander auf, daher ist eine Teilnahme an beiden Veranstaltungen erforderlich.

Literaturangaben

  • Simon L. Peyton Jones, David R. Lester

Implementing Functional Languages
Prentice Hall, 1992

  • Simon L. Peyton Jones

The Implementation of Functional Programming Languages
Prentice-Hall, 1987

  • Brian W. Kernighan, Dennis M. Ritchie

The C Programming Language. 2. ed.
Prentice Hall, 1988

Externe Kommentarseite

http://www.techfak.uni-bielefeld.de/ags/pi/lehre/W03.html#392139

Lehrende

Termine ( Kalendersicht )

Rhythmus Tag Uhrzeit Format / Ort Zeitraum  

Zeige vergangene Termine >>

Fachzuordnungen

Studiengang/-angebot Gültigkeit Variante Untergliederung Status Sem. LP  
Naturwissenschaftliche Informatik / Diplom (Einschreibung bis SoSe 2004) PSÜ   HS

Keine Konkretisierungen vorhanden
Kein E-Learningangebot vorhanden
registrierte Anzahl: 0
Dies ist die Anzahl der Studierenden, die die Veranstaltung im Stundenplan gespeichert haben. In Klammern die Anzahl der über Gastaccounts angemeldeten Benutzer*innen.
Adresse:
WS2003_392139@ekvv.uni-bielefeld.de
Lehrende, ihre Sekretariate sowie für die Pflege der Veranstaltungsdaten zuständige Personen können über diese Adresse E-Mails an die Veranstaltungsteilnehmer*innen verschicken. WICHTIG: Sie müssen verschickte E-Mails jeweils freischalten. Warten Sie die Freischaltungs-E-Mail ab und folgen Sie den darin enthaltenen Hinweisen.
Falls die Belegnummer mehrfach im Semester verwendet wird können Sie die folgende alternative Verteileradresse nutzen, um die Teilnehmer*innen genau dieser Veranstaltung zu erreichen: VST_1075820@ekvv.uni-bielefeld.de
Reichweite:
Keine Studierenden per E-Mail erreichbar
Hinweise:
Weitere Hinweise zu den E-Mailverteilern
Letzte Änderung Grunddaten/Lehrende:
Freitag, 11. Dezember 2015 
Letzte Änderung Zeiten:
Mittwoch, 8. Oktober 2003 
Letzte Änderung Räume:
Mittwoch, 8. Oktober 2003 
Art(en) / SWS
Seminar (S) / 2
Einrichtung
Technische Fakultät
Fragen oder Korrekturen?
Fragen oder Korrekturwünsche zu dieser Veranstaltung?
Planungshilfen
Terminüberschneidungen für diese Veranstaltung
Link auf diese Veranstaltung
Wenn Sie diese Veranstaltungsseite verlinken wollen, so können Sie einen der folgenden Links verwenden. Verwenden Sie nicht den Link, der Ihnen in Ihrem Webbrowser angezeigt wird!
Der folgende Link verwendet die Veranstaltungs-ID und ist immer eindeutig:
https://ekvv.uni-bielefeld.de/kvv_publ/publ/vd?id=1075820
Seite zum Handy schicken
Klicken Sie hier, um den QR Code zu zeigen
Scannen Sie den QR-Code: QR-Code vergrößern
ID
1075820