Skip to main content.

Compiler 1: Grundlagen

Wichtig: Klausurbeginn am 17.03.2016 nun 30 Minuten vorgezogen

Bereich
Computer Microsystems
Fachrichtung
Technische Informatik, Elektrotechnik/Datentechnik
Art
Vorlesung V2
Dozent/Prüfer
Andreas Koch
Voraussetzungen
Grundkenntnisse Algorithmen und Datenstrukturen, Java, Rechnerarchitektur (erworben z.B. durch GDI1, GDI3 und Technische Grundlagen der Informatik)
Inhalt
Gerade die harten Anforderungen an eingebettete Systeme (z.B. hohe Rechenleistung bei niedrigem Energiebedarf) erfordern oftmals den Einsatz spezialisierter Prozessorarchitekturen. Um diese für Software-Entwickler zugänglich zu machen, müssen neben den Prozessoren auch geeignete Compiler bereitgestellt werden. 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 Compilierung, vom Lexing/Parsing über die semantische Analyse bis hin zur Code-Erzeugung behandelt. Weitere Themen umfassen die automatische Erzeugung von Lexern/Parsern durch Werkzeuge wie ANTLR und JavaCC, die Laufzeitumgebung bei der Ausführung von Hochsprachen sowie den Aufbau von Interpretern. Die Verfahren werden anhand eines in Java verfassten Beispielcompilers für die einfache Hochsprache Triangle erklärt. Zu den einzelnen Abschnitten werden Hausaufgaben in Form von Verständnisfragen und kleineren Programmieraufgaben angeboten.

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

Credits
3,0 CP
Zeit
• Dienstags, 11:40-13:20 Uhr
Ort
S2|02 / C110
Beginn
13.10.2015

Prüfung
Änderung Die Klausur findet am 17.03.2016 von 9:30 -12 Uhr (30 Minuten eher als ursprünglich geplant) in S206/030 statt. Bitte stellen Sie in jedem Fall sicher, dass Sie sich, Ihrer Studienordnung entsprechend, rechtzeitig bei der für Sie zuständigen Stelle zur Prüfung angemeldet haben!

Klausurergebnisse
Sollten nun für Sie im TUCaN sichtbar sein.
Klausureinsicht
Eine Klausureinsicht findet am Mittwoch, den 11. Mai 2016 von 16:30 - 18:00 Uhr in S2|02 E302 statt. Bitte bringen Sie Ihren Studentenausweis und einen Lichtbildausweis mit. Bitte tragen Sie sich in der Umfrage für einen Termin ein, um längere Wartezeiten zu vermeiden.

Vorlesungsfolien

1. Block: Einleitung, Beschreibung von Programmiersprachen
Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1

2. Block: Kompilierungsablauf und Syntaktische Analyse
Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1

3. Block: Kontextanalyse
Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1

4. Block: Laufzeitumgebung
Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1

5. Block: Code-Generierung
Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1

6. Block: Compiler-Generator ANTLR v4
Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1

Aufzeichnungen

Die Folien und der Vortrag werden 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. Falls das von Ihnen verwendete Betriebssystem keinen dafür passenden Codec mitbringt, kann dieser in der Regel problemlos nachinstalliert werden. Für Windows-Varianten könnte dafür bespielsweise das Paket FFDShow Tryout genutzt werden. Unter Linux ist der übliche mplayer direkt in der Lage, die Dateien abzuspielen.

13.10.2015
20.10.2015, Teil 1 20.10.2015, Teil 2
27.10.2015
03.11.2015
10.11.2015
17.11.2015
24.11.2015
01.12.2015
08.12.2015
15.12.2015, Teil 1 15.12.2015, Teil 2
19.01.2016
26.01.2016
02.02.2016: Diese Aufzeichnung ist leider gestört. Bitte verwenden Sie die entsprechende Fassung aus dem Vorjahr.
09.02.2016

Hausaufgaben

Bitte schreiben Sie sich in den Moodle-Kurs ein. Dort finden Sie neben den Aufgabenblättern auch ein Diskussionsforum zur Vorlesung und Übung.

Compiler-Quellcode

Quellcode des Triangle-Compilers und der virtuellen Maschine