Optimierende Compiler
- Bereich
- Computer Microsystems
- Fachrichtung
- Technische Informatik, Elektrotechnik/Datentechnik
- Art
- IV4 oder V3 (siehe unten)
- Dozent
- Andreas Koch
- Voraussetzungen
- Grundkenntnisse Algorithmen und Datenstrukturen, Java, Rechnerarchitektur (erworben z.B. durch Technische Grundlagen der Informatik II)
- 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. Nach einem Überblick über fundamentale Techniken wie Lexing und Parsing werden abstrakte Syntaxbäume und andere Zwischendarstellungen vorgestellt. Im Anschluss geht es dann um Analyse und Transformation dieser Darstellungen mit dem Ziel, optimierten Maschinen-Code zur Ausführung auf modernen Prozessoren zu erhalten. In einem begleitenden Programmierprojekt wird ein bestehender Compiler in Java schrittweise erweitert.
- Literatur
- • Programming Language Processors in Java von David Watt und Deryck Brown
• Engineering a Compiler von Keith D. Cooper, Linda Torczon
• 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
- Credits
- 6.0 CP bei Teilnahme auch am praktischen Teil (Aufgaben, Kolloquien, Vorträge), 4.5 CP bei Beschränkung auf die Vorlesung
- Zeit
- • Dienstags, 16:15-17:55 Uhr
• Donnerstags, 11:40-13:20 Uhr - Ort
- S2|02 / C110
- Beginn
- 14.04.2009
- Anmeldung
- Für diese Veranstaltung ist eine Anmeldung bis zum 28.04.2009, über das WebReg System unbedingt erforderlich.
- Prüfung
- Die Prüfung erfolgt vorlesungsbegleitend in Form von zwei Teilprüfungen (V3) bzw. einer Teilprüfung und dem benoteten Programmierprojekt (IV4). Ob die Teilprüfungen mündlich oder schriftlich durchgeführt werden, hängt von der Anzahl der Interessenten ab. Der genau Prüfungsmodus wird in jedem Fall rechtzeitig innerhalb der Anmeldungsfrist bekanntgegeben. 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!
Folien und Aufzeichnungen der Vorlesungen
In diesem Jahr werden das erste Mal die Folien und der Vortrag aufgezeichnet. Bei dieser Premiere kann es gelegentlich durch die Tücke der Technik noch 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.
Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1
Aufzeichnung 1.Teil (40 MB) Aufzeichnung 2. Teil (41 MB)

Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1
Aufzeichnung 1.Teil (40 MB) Aufzeichnung 2. Teil (34 MB)

Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1
Aufzeichnung 1.Teil (40 MB*) Aufzeichnung 2.Teil (24 MB)

Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1
Aufzeichnung (61 MB*)

Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1
Aufzeichnung 1.Teil (40 MB) Aufzeichnung 3.Teil (9 MB)
Der 2. Teil der Aufzeichnung steht leider nicht zur Verfügung.

Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1
Aufzeichnung (39 MB)

Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1
Aufzeichnung (59 MB)

Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1
Aufzeichnung (28 MB)

Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1
Aufzeichnung (70 MB)

Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1
Aufzeichnung (67 MB)

Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1
Aufzeichnung (76 MB*) Die mit
*
markierten Aufzeichnungen haben leider ganz oder teilweise eine sehr schlechte Tonqualität.
Aufgaben für praktische Programmierarbeiten




An die vier Pflichtaufgaben schliesst sich eine optionale Verbesserungsphase an, in der die Kommentare aus dem letzten Kolloquium noch berücksichtigt werden können. Hier könnten Sie auch weitergehende Optimierungen für eine potenzielle Notenverbesserung realisieren. Aber Obacht: Es ist besser, einen vollständig funktionierenden Compiler zu entwickeln, der nicht alle Optimierungen beherrscht, als einen, der zwar jede Menge Optimierungen kann, aber die Programme verhackstückt!
Materialsammlung für praktische Arbeiten

Unterstützt den vollen Triangle-Sprachumfang, erweitert um Dateioperationen und höhere Speichergrenzen.
Ausgewählte wissenschaftliche Veröffentlichungen als Hintergrundmaterial

MARC M. BRANDIS and HANSPETER MÖSSENBÖCK
ACM Transactions on Programming Languages andS ystems 16(6): 1684-1698, Nov.1994 ACM Digital Library

BRIGGS, COOPER, HARVEY, SIMPSON
SOFTWARE PRACTICE AND EXPERIENCE, VOL. 28(8), 1-28 (July 1998) Wiley Online Library

CYTRON, FERRANTE, ROSEN, WEGMAN, ZADECK
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 13 , Issue 4 (October 1991) ACM Digital Library

BRIGGS, COOPER, SIMPSON
SOFTWARE—PRACTICE AND EXPERIENCE, VOL. 27(6), 701-724 (JUNE 1997) Wiley Online Library

DHANAJAY DHAMDHERE
ACM SIGPLAN Notices, 2002, vol. 37, no 8, pp. 53-65, hier korrigierte Fassung Dhananjay Dhamdhere's publications page - use second item

WEGMAN, ZADECK
ACM TOPLAS, 13(2), April 1991, pp. 181-210 ACM Digital Library

CLICK, COOPER
ACM TOPLAS, 17(2), März 1995, pp. 181-196 ACM Digital Library