Fortgeschrittener Compilerbau
Art: Vorlesung V3
Credits: 6 CP
Prüfer / Betreuer
Bereich: Software-Systeme und formale Grundlagen
Fachrichtung: Technische Informatik, Elektrotechnik/Datentechnik
Voraussetzungen: Grundkenntnisse Compilerbau (aus Compiler 1/Einführung Compilerbau), Algorithmen und Datenstrukturen, Java, Rechnerarchitektur (erworben z.B. durch Technische Grundlagen der Informatik)
Inhalt
Die komplizierten Architekturen moderner Prozessoren können in der Praxis nur noch durch den Einsatz hochgradig optimierender Compiler ausgenutzt werden. Innerhalb dieser Compiler hat sich daher stetig die Komplexität von der Erkennung der Quelltexte hin zu deren möglichst effizienter Umsetzung in Maschinen-Code verschoben. In der Lehrveranstaltung geht es um eine praktische Einführung in die dafür benötigten Algorithmen und Datenstrukturen. Vorgestellt werden Analysen und Transformationen dieser Darstellungen mit dem Ziel, optimierten Maschinen-Code zur Ausführung auf modernen Prozessoren zu erhalten. Der behandelte Stoff wird in Übungsblättern, deren Bearbeitung freiwillig ist (keine Abgabe), sowohl in theoretischen als auch praktischen Aufgaben vertieft.
Literatur
Bücher
- Engineering a Compiler von Keith D. Cooper, Linda Torczon (2. Auflage!)
- Advanced Compiler Design and Implementation von Steven S. Muchnick
- Compilers: Principles, Techniques, and Tools (2. Auflage!) von Aho, Lam, Sethi und Ullman
Ausgewählte wissenschaftliche Veröffentlichungen
Zugriff teilweise nur im Netz der TU oder per VPN
Marc M. Brandis, Hanspeter Mössenböck: Single-Pass Generation of Static Single-Assignment Form for Structured Languages. ACM Trans. Program. Lang. Syst. 16(6): 1684-1698 (1994)
Preston Briggs, Keith D. Cooper, Timothy J. Harvey, L. Taylor Simpson: Practical Improvements to the Construction and Destruction of Static Single Assignment Form. Softw. Pract. Exp. 28(8): 859-881 (1998)
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, F. Kenneth Zadeck: Efficiently Computing Static Single Assignment Form and the Control Dependence Graph. ACM Trans. Program. Lang. Syst. 13(4): 451-490 (1991)
Preston Briggs, Keith D. Cooper, L. Taylor Simpson: Value Numbering. Softw. Pract. Exp. 27(6): 701-724 (1997)
Vorlesungsmodus
Die Vorlesung findet in Präsenz statt.
- Dienstags, 16:15 - 17:45 Uhr
- Donnerstags, 11:40 - 13:10 Uhr
- Ort: S2/02 C110
- Geplant: Live-Stream der Vorlesungen auf lect.stream
- Ankündigungen, Foren und Übungen auf Moodle
Beginn: 22.04.2025
Aufzeichnungen
Foliensätze
Aufzeichnungen im Vektorformat
Wir bieten die Aufzeichnungen neben den üblichen H.264-komprimierten Videodateien in einem zweiten eigenen Format, genannt .plr
an. Dieses vektorbasierte Format hat eine Reihe von Vorteilen gegenüber den .mp4
Videodateien:
- Die Aufzeichnungen bestehen aus frei skalierbaren Vektoren und haben bei vergrößerter Darstellung eine deutlich höhere Qualität als die pixelbasierten H.264 Videodateien.
- Die Vektordateien werden automatisch je Folie indiziert. Das heisst, dass gezielt der Vortrag zu einzelnen Folien angesprungen werden kann und auch direkt in der Aufzeichnung nach Folienstichworten gesucht werden kann.
- Die
.plr
-Dateien sind in der Regel kleiner als die.mp4
-Videodateien.
Diese zusätzliche Funktionalität erfordert allerdings eine eigene Abspielsoftware. Diese ist Bestandteil des .zip
-Archivs der Vektoraufzeichnungen und wird als JavaScript (.js
) in allen modernen Browsern ausgeführt. Zum Starten des Players nach dem Entpacken des .zip
-Archivs dazu einfach die Datei index.html
doppelclicken und dann die zur Wiedergabe gewünschte .plr
-Aufzeichnung anwählen.
Da diese Funktionalität unserer in Open-Source eigenentwickelten Aufzeichnungssoftware lectureStudio immer noch sehr neu ist, wären wir für Erfahrungsberichte / Bug-Reports / Verbesserungsvorschläge im Moodle-Forum dankbar!