Implementierung von Programmiersprachen (Praktikum)
Ziel dieses Praktikums ist die Implementierung eines Teils einer Programmiersprache. Dazu erarbeiten wir in der ersten Semesterhälfte verschiedene Aspekte der Implementierung einer Programmiersprache (z.B. syntaktische Prüfung, Typprüfung, Zwischenstufen (ANF, SSA, CPS, …), Kontrollfluss, …) mit Hilfe von Programmieraufgaben. Danach wählen die Studierenden in Absprache mit dem Veranstalter einen Teil einer existierenden oder selbst entworfenen Programmiersprache aus und implementieren diesen Teil in der zweiten Semesterhälfte.
Die Programmieraufgaben in der ersten Semesterhälfte müssen mit der Programmiersprache Haskell bearbeitet werden. Für das abschließende Projekt kann auch eine andere Programmiersprache gewählt werden. Wir empfehlen Programmiersprachen mit Unterstützung für algebraische Datentypen (z.B. Scala, Haskell, Racket, …).
Die Kommunikation läuft über unser Forum, eine physische Anwesenheit ist nicht notwendig. Auch die Abschlusspräsentation kann online erfolgen.
- Eintrag im Vorlesungsverzeichnis: Alma
Anmeldung
Die Anmeldung erfolgt per Email an Philipp Schuster
AlumniPhilipp Schuster bis Freitag,
den 24.04.2020 Ende des Tages.
Vorbesprechung
Ein erstes Treffen findet am Montag den 20.04.2020 um 15:00 online via Zoom statt. Hier der Link dazu:
https://zoom.us/j/98396407506?pwd=SUxDRXc4akpPY0sxL0dlbGRWQlFaZz09
Meeting-ID: 983 9640 7506 Passwort: 373277
Dozenten
- Klaus Ostermann
HeadKlaus Ostermann - David Binder
ResearcherDavid Binder - Philipp Schuster
AlumniPhilipp Schuster
Bewertung
- Programmieraufgaben in der ersten Semesterhälfte 50%
- Projekt in der zweiten Semesterhälfte 50%
Lernziele
-
Studierende können eine einfache Programmiersprache selbstständig implementieren.
-
Studierende verstehen wie die einzelnen Komponenten der Implementierung einer Programmiersprache zusammenwirken.
-
Studierende verknüpfen Ihr Wissen über die Auswahl und Verwendung von Programmiersprachen mit Kenntnissen über die Implementierung von Programmiersprachen.
-
Studierende setzen Methoden der Softwaretechnik (Testen, Benchmarking, Versionskontrolle, Code Review, …) ein.
Voraussetzungen
Ein vorheriger oder paralleler Besuch der Vorlesung “Programmiersprachen 1” ist hilfreich aber nicht notwendig.