Art: Integrierte Veranstaltung

Credits: 5 CP

Prüfer / Betreuer

Corona-Update

Die Vorlesung wird trotz der aktuellen Corona-Pandemie stattfinden, allerdings in vollständig digitaler Form. Weitere Details zur Organisation finden Sie im Orga-Video und im Moodle-Kurs.

Empfohlene Voraussetzungen

Grundkenntnisse Algorithmen und Datenstrukturen, Java, Rechnerarchitektur (erworben z.B. durch “Algorithmen und Datenstrukturen”, “Funktionale und objektorientierte Programmierkonzepte” und “Rechnerorganisation” bzw. die Vorgängerveranstaltungen GDI2, GDI1 und TGDI)

Inhalt

Diese Veranstaltung gibt eine praktisch orientierte Einführung in die Grundlagen des Compilerbaus, speziell der benötigten Algorithmen und Datenstrukturen. Dabei werden alle Phasen der Übersetzung, vom Lexing/Parsing über die semantische Analyse bis hin zur Codeerzeugung behandelt. Weitere Themen umfassen die automatische Erzeugung von Lexern/Parsern durch Werkzeuge wie ANTLR und JavaCC, sowie die Laufzeitumgebung bei der Ausführung von Hochsprachen. Die Verfahren werden anhand eines in Java verfassten Beispielcompilers für die einfache Hochsprache Triangle erklärt.

Anmeldung

  • Zum Erwerb der Studienleistung müssen Sie wie gewohnt im TUCaN (20-00-0904-iv) angemeldet sein.
  • Bitte schreiben Sie sich in den zugehörigen Moodle-Kurs ein. Den Kurs finden Sie hier.

Literatur

  • Programming Language Processors in Java von David Watt und Deryck Brown

Prüfungsform

  • Sonderform = semesterbegleitende, benotete Studienleistung

Studienleistung

Die Studienleistung kann erbracht werden durch die erfolgreiche Bearbeitung von Übungsblättern und praktischen Programmieraufgaben in Gruppen (geplant mit je drei Mitgliedern), sowie deren erfolgreicher Diskussion in individuellen Testaten. Über das Semester verteilt werden Sie drei Übungsblätter (Bearbeitungszeit: jeweils eine Woche) und drei Programmierprojekte (Bearbeitungszeit: jeweils zwei Wochen) bearbeiten. Für ein Bestehen sind dabei mindestens ausreichende Leistungen in jedem dieser Teilbereiche erforderlich.

Wichtig: Ein Anrecht auf Wiederholung von Teilleistungen bei verspäteter Anmeldung besteht nicht! Achten Sie dementsprechend darauf, dass Sie sich rechtzeitig zum Modul und zur Studienleistung anmelden.

Hinweis

Die aktuell im TUCaN auswählbaren Testats- und Übungsgruppen sind NICHT bindend.

Testate

Die Testate erfolgen dieses Semester online über Nabla. Weiter Infos finden Sie hier:

Hinweis für Studierende der PO 2009 und älter

Das Modulangebot “Compiler I” (20-00-0610) ist zum SoSe 2016 ausgelaufen. Studierende in PO2009 und älter, können “Einführung in den Compilerbau” nicht ersatzweise für “Compiler I” belegen, da die neue Veranstaltung nicht im Wahlpflichtkatalog der PO 2009 und älter enthalten ist.

Zusätzliches Material

Triangle-Compiler, v2.1-esa6

Achtung: Dies ist nicht die Compiler-Umgebung für die Studienleistung, sondern dient zur Veranschaulichung des Vorlesungsstoffs.

Vorlesungsfolien

1. Block: Einleitung (Handout für Druck)
1. Block: Einleitung (mit Animationen)
2. Block: Lexing/Parsing (Handout für Druck)
2. Block: Lexing/Parsing (mit Animationen)
3. Block: Kontextanalyse (Handout für Druck)
3. Block: Kontextanalyse (mit Animationen)
4. Block: Laufzeitumgebung (Handout für Druck)
4. Block: Laufzeitumgebung (mit Animationen)
5. Block: Code-Generierung (Handout für Druck)
5. Block: Code-Generierung (mit Animationen)
6. Block: ANTLRv4 (Handout für Druck von WS18/19 - Inhaltlich gleich)
6. Block: ANTLRv4 (mit Animationen)
7. Block: Java Virtual Machine (mit Animationen)
7. Block: Java Virtual Machine (Handout für Druck)

Aufzeichnungen

Die Folien und der Vortrag werden bis auf weiteres aufgezeichnet. Dabei kann es gelegentlich durch die Tücke der Technik zu Störungen oder Ausfällen kommen. Wir bitten diese zu entschuldigen und hoffen, sie in erneuten Durchgängen zu vermeiden. Die Aufzeichungen selbst sind platzsparend im H.264-Format komprimiert. Zum Abspielen empfehlen wir VLC.

15.10.2019
22.10.2019
29.10.2019
05.11.2019
12.11.2019
19.11.2019
26.11.2019
03.12.2019
10.12.2019
17.12.2019
14.01.2020
21.01.2020: Diese Aufzeichnung war leider gestört bitte verwenden Sie die Aufzeichnung aus 2018 (https://www.esa.informatik.tu-darmstadt.de/campus/C1-20190129.mp4).
28.01.2020
04.02.2020: Die ersten Minuten der Aufzeichnung sind gestört (bis ca. 5 Minuten).
11.02.2020