PSlogo
homeicon uni sucheicon suche siteicon sitemap kontakticon kontakt
unilogo Universität Stuttgart
 

Institut für Softwaretechnologie

 

Vorlesung Programmanalysen und Compilerbau (3V+1Ü)

Dozent

Stefan Staiger (Vorlesung + Übungen)

Termine und Ort

  • Wir sind stets im Hörsaal 38.03
  • Mo 15:45 - 17:15 Uhr Vorlesung
  • Di 15:45 - 17:15 Uhr im Wechsel Vorlesung und Übung

Beschreibung

Selektive Vertiefung der Inhalte der "Grundlagen der Programmiersprachen und Übersetzer" für die Realisierung von Programmanalysen und insbesondere für den Bau von Compilern: Methoden und Realisierung der semantischen Analyse, Symboltabellen, semantische Attributierungen, Umsetzung dynamischer Semantik in Zwischencode, prinzipielle Speichervergabe; Kontroll- und Datenflussanalyse; lokale und globale Optimierungen, Registervergabe, Codeerzeugung; Laufzeitsysteme; separate Übersetzung und Bibliotheksmechanismen.

Voraussetzungen

Die Inhalte der Vorlesung "Grundlagen der Programmiersprachen und Übersetzer" sind notwendige Voraussetzung. Grundkenntnisse in der Graphentheorie sind hilfreich.

Aktuelles

Zur Prüfung: Prof. Plödereder hat entschieden, dass alle behandelten Themen prüfungsrelevant sind. Das Skript steht jetzt in einer (nicht druckbaren) aktualisierten Version online (s.u.).

Achtung: Prof. Plödereder hat entschieden, dass es nicht möglich ist, diese Vorlesung zusammen mit der Vorlesung Software Reengineering als Vertiefungslinie zu prüfen. Grund hierfür sind die inhaltlichen Überschneidungen und die Tatsache, dass die Software Reengineering Vorlesung nicht für die Vertiefungslinie konzipiert wurde. Es ist jedoch problemlos möglich, unsere Vorlesung (Programmanalysen) mit den anderen Vorlesungen des Lehrstuhls zu kombinieren: Grundlagen-Vorlesung, Konzepte von Programmiersprachen, Realtime Programming (die letzten beiden wird es im nächsten Semester geben).

Übungsblätter

Blatt 1 (PDF) (Besprechung am 31.10.)

Blatt 2 (PDF) (Besprechung am 07.11.)

Blatt 3 (PDF) (Besprechung am 21.11.)

Blatt 4 (PDF) (Besprechung am 05.12.)

Blatt 5 (PDF) (Besprechung am 19.12.)

Blatt 6 (PDF) (Besprechung am 23.01.)

Blatt 7 (PDF) (Besprechung am 06.02.)

Literatur

Skript (vom SS 04) aus der Fachschaft / vom Kopierlädle; nicht druckbare erweiterte PDF-Version (enthält die Zusatzkapitel)

Zusatzkapitel Interprozedurale Kontrollflussanalyse

Zusatzkapitel Dominatoren und Dominanzgrenze

Zusatzkapitel Strukturanalyse

Zusatzkapitel Zeiger- und Aliasanalysen

Zusatzkapitel Seiteneffekt-Analyse

Zusatzkapitel Schleifenoptimierungen

Zusatzkapitel Berechnung der SSA-Form

Abschließende Folien Wiederholung (stark zusammengefasst)

Literaturhinweise zu den zusätzlichen Themen:

  • Generell: Leider kein Lehrbuch zu allen Themen der Programmanalysen
  • Viele fortgeschrittene Themen sind im Buch von Muchnik zu finden: Advanced Compiler Design and Implementation (1997)
  • Ansonsten: Einzelne Forschungsartikel, in der Regel im Web zu finden (zumindest von den Uni-Rechnerpools aus sind z.B. alle Artikel der ACM Digital Library und von IEEE XPlore zugänglich)
  • Zeigeranalysen: Überblick z.B. in einem Artikel von Hind: Pointer Analysis: Haven't We Solved This Problem Yet? (2001)
  • Dominatoren und Dominanzgrenzen: Artikel von Cooper, Harvey und Kennedy: A Simple, Fast Dominance Algorithm (2001)
  • Bei Interesse: An Dozenten und andere Mitarbeiter des Lehrstuhls wenden