|
MOVES: Software Modeling and Verification
(Informatik 2)
|
Programmanalyse und Compileroptimierung
Wintersemester 2004
Diplomstudiengang Informatik,
Masterstudiengang Software Systems Engineering
(Theoretische Informatik, Vertiefungsfach)
Termine
| Art |
Zeit |
Ort |
Beginn |
Veranstalter |
| V |
Mi 10:00-11:30 Fr 10:00-11:30 |
AH II AH II |
13.10.2004 |
Indermark |
| Ü |
Mi 14:15-15:45 |
AH II |
20.10.2004 |
Stolz |
Klausur
Ergebnisse der Klausur (nur zugänglich innerhalb der Domain rwth-aachen.de). Die Übungsscheine können ab März im Sekretariat des Lehrstuhls abgeholt werden.
Inhalt
Die Konstruktion von effizienten Software-Werkzeugen, z.B. von
optimierenden Compilern, erfordert die Kenntnis semantischer
Programmeigenschaften. Diese können mit Methoden der Programmanalyse
berechnet und für geeignete Programmtransformationen und
-übersetzungen ausgenutzt werden.
In dieser Vorlesung sollen grundlegende Analysetechniken für
imperative Programmiersprachen und ihre Anwendung auf die
Compileroptimierung behandelt werden:
- Analyse und Optimierung von Straight-Line Code
- Datenflußanalyse und Optimierung iterativer Programme
- Kontrollflußanalyse und Schleifenoptimierung
- Interprozedurale Analyse
- Shape-Analyse von Programmen mit dynamischen Datenstrukturen
Diese Vorlesung kann unabhängig von der Vorlesung
Compilerbau besucht werden!
Folien
- Kap. 0: Einführung
![[ps]](../../../../Images/ps.gif)
- Kap. 1: Einführung
![[ps]](../../../../Images/ps.gif)
- Kap. 2: Analyse und Optimierung von Straight-Line-Code
![[ps]](../../../../Images/ps.gif)
- Kap. 4: Datenflußanalyse und Optimierung iterativer Programme
![[ps]](../../../../Images/ps.gif)
- Kap. 5: Kontrollflussanalyse und Schleifenoptimierung
![[ps]](../../../../Images/ps.gif)
- Kap. 6: Interprozedurale Analyse
![[ps]](../../../../Images/ps.gif)
- Kap. 7: Shape-Analyse
![[ps]](../../../../Images/ps.gif)
Übungen
- 1. Übung
![[ps]](../../../../Images/ps.gif)
- 2. Übung
![[ps]](../../../../Images/ps.gif)
- 3. Übung
![[ps]](../../../../Images/ps.gif)
- 4. Übung
![[ps]](../../../../Images/ps.gif)
- 5. Übung
![[ps]](../../../../Images/ps.gif)
- 6. Übung
![[ps]](../../../../Images/ps.gif)
- 7. Übung
![[ps]](../../../../Images/ps.gif)
- 8. Übung
![[ps]](../../../../Images/ps.gif)
- 9. Übung
![[ps]](../../../../Images/ps.gif)
- 10. Übung
![[ps]](../../../../Images/ps.gif)
- 11. Übung
![[ps]](../../../../Images/ps.gif)
- 12. Übung
![[ps]](../../../../Images/ps.gif)
Literatur
-
F. Nielson, H.R. Nielson, C. Hankin: Principles of Program
Analysis, Springer-Verlag, 1999
-
Steven S. Muchnik: Advanced Compiler Design and
Implementation, Morgan Kaufmann, 1997
-
Steven S. Muchnik, Neil D. Jones: Program Flow Analysis,
Prentice Hall, 1981
-
R. Wilhelm, D. Maurer: Übersetzerbau,
Springer-Verlag, 1992
-
A. Aho, R. Sethi, J.Ullman: Compilers - Principles,
Techniques, and Tools, Addison-Wesley, 1988
-
R. Morgan: Building an Optimizing Compiler, Digital Press,
1998
-
T. Fahringer, B. Scholz: Advanced Symbolic Analysis for
Compilers, LNCS 2628, Springer-Verlag, 2003
-
R. Allen, K. Kennedy: Optimizing Compilers for Modern
Architectures, Morgan Kaufmann Publ., 2002
-
Thomas Noll:
Programmoptimierung
durch Konstantenanalyse, Informatik-Kolloquium der RWTH
Aachen, 24.07.2003
|