Programming Languages

Implementierung von Programmiersprachen (Praktikum)

Ziel dieses Praktikums ist die Implementierung eines Teils einer Programmiersprache in kleinen Gruppen. Dazu erarbeiten wir in der ersten Semesterhälfte verschiedene Aspekte der Implementierung einer Programmiersprache (z.B. syntaktische Prüfung, Typprüfung, Optimierung, Interpretation, Code-Generierung, virtuelle Maschinen, …) mit Hilfe von Programmieraufgaben. Danach wählen die Studierenden in Absprache mit dem Veranstalter einen Teil einer existierenden oder selbst designten Programmiersprache aus und implementieren diesen Teil in der zweiten Semesterhälfte alleine oder in einer kleinen Gruppe als Projekt. In regelmäßigen Code Reviews und einer abschließenden Präsentation des Projektes lernen wir, auf professionellem Niveau über die Implementierung einer Programmiersprache zu reden.

Die Programmieraufgaben in der ersten Semesterhälfte müssen mit der Programmiersprache Scala 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, …).

Dozenten

Termin

Dienstags um 12 Uhr c.t. in Raum A104.

Forum

Bitte registrieren Sie sich im Forum zur Lehrveranstaltung. Wir nutzen das Forum zur Verteilung von Materialien, für wichtige Ankündigungen und zur Diskussion.

Vorbesprechung und Anmeldung

Die Vorbesprechung findet am Donnerstag, dem 14. April 2016 um 16:00 c.t. in Raum A301 auf dem Sand statt. Wenn Sie an der Vorbesprechung nicht teilnehmen können, melden Sie sich bitte per Email an Tillmann Rendel
Alumni
Tillmann Rendel
an.

Bewertung

  • Brogrammieraufgaben in der ersten Semesterhälfte 30%
  • Projekt in der zweiten Semesterhälfte 55%
  • Mitarbeit bei Code Reviews und Vorstellung des Projektes 15%.

Lernziele

  • Studierende verstehen wie die einzelnen Komponenten der Implementierung einer Programmiersprache zusammenwirken.

  • Studierende kennen den Zusammenhang zwischen der Implementierung von Programmiersprachen und den Grundfragen der theoretischen Informatik (formale Sprachen, Entscheidbarkeit).

  • 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.

  • Studierende können eine einfache Programmiersprache selbstständig implementieren.

Einordnung

Sechs LP, siehe Vorlesungsverzeichnis.

Voraussetzungen

Ein vorheriger oder paralleler Besuch der Vorlesung “Programmiersprachen 1” ist hilfreich aber nicht notwendig.