Optimierende Übersetzer
LVA 185.A04, VU 2.0, ECTS 3.0, 2012 W
(zweistündige Vorlesung mit Übung; siehe auch
TISS/185.A04)
Haben Sie Interesse an einem geförderten
Auslandsstudium?
Informationen zu Fördermöglichkeiten finden Sie
hier.
Termine für Vorlesung und Anmeldung
Vorlesung
Die Vorbesprechung und erste Vorlesung findet am Di, den 02.10.2012, von
16:15 - 17:45 Uhr in der Bibliothek E185.1, Argentinierstr. 8, 4. Stock
(Mitte) statt. Die weiteren Vorlesungen finden dann zur selben Zeit
mittwochs statt.
- Mi, den 23.01.2013, 16:15 Uhr - 17:45 Uhr, Discussion and feedback
of submitted assignments with Jakob Zwirchmayr,
Bibliothek E185.1,
Argentinierstr. 8, 4. Stock (Mitte).
- Mi, den 16.01.2013, 16:15 Uhr - 17:45 Uhr, Vorlesung in
Bibliothek E185.1,
Argentinierstr. 8, 4. Stock (Mitte).
- Mi, den 09.01.2013, 16:15 Uhr - 17:45 Uhr, Vorlesung in
Bibliothek E185.1,
Argentinierstr. 8, 4. Stock (Mitte).
- Mi, den 19.12.2012, 16:15 Uhr - 17:45 Uhr, Vorlesung in
Bibliothek E185.1,
Argentinierstr. 8, 4. Stock (Mitte).
- Mi, den 12.12.2012, 16:15 Uhr - 17:45 Uhr, Vorlesung in
Bibliothek E185.1,
Argentinierstr. 8, 4. Stock (Mitte).
- Mi, den 05.12.2012, 16:15 Uhr - 17:45 Uhr, Vorlesung in
Bibliothek E185.1,
Argentinierstr. 8, 4. Stock (Mitte).
- Mi, den 28.11.2012, 16:15 Uhr - 17:45 Uhr, Vorlesung in
Bibliothek E185.1,
Argentinierstr. 8, 4. Stock (Mitte).
- Mi, den 21.11.2012, 16:15 Uhr - 17:45 Uhr, Vorlesung in
Bibliothek E185.1,
Argentinierstr. 8, 4. Stock (Mitte).
- Mi, den 14.11.2012: Keine Vorlesung
- Mi, den 07.11.2012, 16:15 Uhr - 17:45 Uhr, Vorlesung in
Bibliothek E185.1,
Argentinierstr. 8, 4. Stock (Mitte).
- Mi, den 31.10.2012: Keine Vorlesung
- Mi, den 24.10.2012, 16:15 Uhr - 17:45 Uhr, Vorlesung in
Bibliothek E185.1,
Argentinierstr. 8, 4. Stock (Mitte).
- Mi, den 17.10.2012: Keine Vorlesung
- Mi, den 10.10.2012, 16:15 Uhr - 17:45 Uhr, erste Vorlesung in
Hörsaal 14,
Karlsplatz 13.
- Mi, den 03.10.2012: Keine Vorlesung
- Di, 02.10.2012, 16:15 - ca. 17:45 Uhr, Vorbesprechung in
Bibliothek E185.1,
Argentinierstr. 8, 4. Stock (Mitte).
Anmeldung
Die Anmeldung über das elektronische
Anmeldesystem
ist bis zum 12.10.2012 möglich.
Die Vorlesung vertieft in Theorie und Praxis das Gebiet
Programmanalyse und -optimierung, das ein wesentliches
Forschungsgebiet im Bereich
Programmiersprachen und
Übersetzerbau ist. Dabei spannt die Vorlesung den Bogen von
den theoretischen Grundlagen bis zur praktischen Anwendung und der
automatischen Generierung von Programmanalysen und Optimierungen. Im
Übungsteil werden die in der Vorlesung behandelten Themen in
theoretischen und praktischen Übungen eigenständig
vertieft. Für die praktischen Übungen wird dabei die
Static Analysis Tool Integration Engine SATIrE eingesetzt;
ein System, das diverse Werkzeuge für die Analyse und Optimierung von
objektorientierten Sprachen integriert, darunter den
Program
Analyzer Generator (PAG), für den auch eine Web-Demo
PAG/WWW verfügbar ist. Die
Web-Demo erlaubt einige Analysen für eine einfache WHILE-Sprache
ausführen zu lassen. Die in der Übung verwendete Umgebung
unterstützt die Visualisierungsmöglichkeiten von
PAG/WWW, stellt aber
darüberhinaus wesentlich umfangreichere Möglichkeiten für die
Analyse und Optimierung von prozeduralen und objektorientierten
Sprachen zur Verfügung.
Die Vorlesung behandelt insbesondere folgende Themen und deren
Realisierung mithilfe von SATIrE:
- Grundlagen und Anwendungen von Programmanalyse und Optimierung
- Datenflussanalyse (vorwärts, rückwärts,
existentiell, universell)
- Datenflussanalyserahmen (intraprozedural, interprozedural)
- Maschinenunabhängige Optimierungen, insbesondere syntaktische
und semantische Redundanzelimination
- Zeiger-, Alias- und Geflechtanalysen
- Analyse und Optimierung objektorientierter Programme
- Generatoren für Analyse und Optimierung, speziell
SATIrE
- ...
Die Studierenden erhalten so ein umfassendes Verständnis der
theoretischen Grundlagen und praktischen Anwendungen von
Programmanalyse und -optimierung im Übersetzerbau. Sie lernen,
die Möglichkeiten und Grenzen automatischer Analysen und Optimierungen
einzuschätzen und sind im Wissen darum in der Lage, über
Anwendungen im Übersetzerbau hinaus, Software so zu schreiben,
dass, wo möglich, Entwurfsziele wie Klarheit, Wartbarkeit,
Robustheit vor unnötigen Effizienzüberlegungen in den Vordergrund
treten.
Die Vorlesung schließt inhaltlich an die Lehrveranstaltung
185.311
Übersetzerbau an und ergänzt die Lehrveranstaltungen
185.274
Weiterführender Übersetzerbau und
185.276
Analyse und Verifikation. Sie empfiehlt sich deshalb inbesondere
für Studierende, die im Bereich von Programmiersprachen und
Übersetzerbau einen besonderen Schwerpunkt setzen, eine
Seminararbeit, ein Praktikum oder ihre Diplomarbeit anfertigen
möchten.
Vorlesungs- und Übungsunterlagen
Vorlesungsunterlagen
Vorlesung
Folien vom
| Thema
| Verfügbare Formate
| Hinweise und Bemerkungen
|
17.01.2013
Main Slide Package
| Frameworks and Applications
| .pdf
| None.
|
16.01.2013
Slide Package 8
| Extensions: Slicing
| .pdf
| None.
|
16.01.2013
Slide Package 7
| Analysing and optimizing object-oriented languages
| .pdf
| [L2:Chapter 6], [L5:Chapter 13]
|
16.01.2013
Slide Package 6
| Pointer analysis, Alias analysis,
Shape analysis of dynamic data structures
| .pdf
| [L1:Chapter 2.6], [L3:Chapter 10], [L2:Chapter 5]
|
16.01.2013
Slide Package 5
| Interprocedural Data Flow Analysis
| .pdf
| [L1:Chapter 2.5, Chapter 6]
|
21.11.2012
Slide Package 4
| Data Flow Analysis Frameworks
| .pdf
| [L1:Chapter 2.3 & 2.4, Chapter 6]
|
07.11.2012
Slide Package 3
| Intraprocedural
Backward Analyses
| .pdf
| [L1:Chapter 2.1-4].
|
24.10.2012
Slide Package 2
| Intraprocedural
Forward Analyses
| .pdf
| [L1:Chapter 1, 2.1-4]
|
10.10.2012
Slide Package 1
| Introduction and
Fundamentals
| .pdf
| None.
|
02.10.2012
Initial Course Mtg
| Motivation and
Organizational Issues
| .pdf
| Termin und Ort
der Vorbesprechung:
Di, 02.10.2012
16:15 - ca. 16:45 Uhr, Bibliothek E185.1, Argentinierstr. 8, 4. Stock (Mitte)
|
- [L1] Flemming Nielson, Hanne Riis Nielson,
Chris Hankin:
Principles
of Program Analysis. Springer, (2nd edition,
452 pages, ISBN 3-540-65410-0), 2005.
- [L2] Y. N. Srikant, Priti Shankar: The
Compiler Design Handbook: Optimizations & Machine Code Generation,
CRC Press; 1st edition, (928 pages, ISBN: 084931240X), 2002.
- [L3] Steven S. Muchnick: Advanced Compiler
Design and Implementation, Morgan Kaufmann; (856 pages,
ISBN: 1558603204), 1997.
- [L4] AbsInt Angewandte Informatik GmbH:
The Program Analyzer Generator, User's Manual; (170 pages), 2002.
- [L5] Y. N. Srikant, Priti Shankar: The
Compiler Design Handbook: Optimizations & Machine Code Generation,
CRC Press; 2nd edition, (ISBN: 978-1-4200-4382-2), 2008.
Tutorial
Assignment
| Submission
| Available Format
| Hints and Remarks
|
Assignment 4 (01/09/2013)
| 01/23/2013
|
| See Section 7.4! (Final assignment)
|
Assignment 3 (12/04/2012)
| 12/19/2012
| pdf
| None.
|
Assignment 2 (11/21/2012)
| 12/05/2012
| pdf
| None.
|
Assignment 1 (11/07/2012)
| 11/21/2012
| pdf
| Additional information (not required for assignment 1).
|
Die Beurteilung erfolgt anhand von Abgabegesprächen zu den
Beispielen aus der Übung und einer mündlichen
Abschlussprüfung über Vorlesungs- und Übungsstoff.
Termine für die mündliche Abschlussprüfung nach
Abschluss der Lehrveranstaltung werden im Lauf des Semesters
individuell abgesprochen.
Vortragender
Jens Knoop.