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: 16.04.2024

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!