Fortgeschrittener Compilerbau
Art: Vorlesung V3
Credits: 5 CP
Prüfer / Betreuer
Bereich: Robotik, Computational and Computer Engineering
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
- 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
- sowie ausgewählte wissenschaftliche Veröffentlichungen (siehe unten)
Zeit
- Dienstags, 16:15-17:55 Uhr
- Donnerstags, 11:40-13:20 Uhr
Ort: S2|02 / C110
Beginn: 16.04.2019
Sprechstunde: Freitags 14-15 Uhr, A313
Links: Moodle
Vorlesungsfolien
1. Block: Übersetzung objektorientierter Sprachen am Beispiel von Bantam
2. Block: Datenflußanalyse
3. Block: SSA-Form und CFG-SSA Wandlung
4. Block: SSA-Form Rückwandlung
5. Block: Redundanzeleminierung
6. Block: Partielle Redundanzeleminierung
7. Block: Skalare Optimierungen
8. Block: Registerallokation
LLVM Handout
LLVM Folien
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.
16.04.2019
30.04.2019
02.05.2019
07.05.2019
21.05.2019
09.05.2019
14.05.2019 Wegen technischer Probleme alte Aufnahme
16.05.2019
28.05.2019
04.06.2019
06.06.2019
11.06.2019
13.06.2019
26.06.2019
11.07.2019
16.07.2019
18.07.2019