185.A04 Optimierende Übersetzer
Diese Lehrveranstaltung ist in allen zugeordneten Curricula Teil der STEOP.
Diese Lehrveranstaltung ist in mindestens einem zugeordneten Curriculum Teil der STEOP.

2017W, VU, 2.0h, 3.0EC, wird geblockt abgehalten

Merkmale

  • Semesterwochenstunden: 2.0
  • ECTS: 3.0
  • Typ: VU Vorlesung mit Übung

Ziele der Lehrveranstaltung

Die Studierenden erhalten 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.

Inhalt der Lehrveranstaltung

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). 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
  • ...

Im Detail:

Teil I: Einführung

  • Motivation
  • Klassische Gen/Kill-Datenflussanalysen

Teil II: Intraprozedurale Datenflussanalyse

  • Intraprozeduraler Datenflussanalyserahmen
  • Gen/Kill-Datenflussanalysen reinspiziert
  • Konstantenausbreitung und -faltung
  • Partielle Redundanzelimination (PRE)
  • PRE: Busy Code Motion
  • PRE: Lazy Code Motion
  • PRE: Sparse Code Motion
  • PRE: Zusammenfassung, Ausblick

Teil III: Interprozedurale Datenflussanalyse

  • Grundlagen
  • Interprozeduraler Datenflussanalyserahmen
  • Funktionaler Ansatz
  • Kontextinformationsansatz
  • Anwendungen

Teil IV: Erweiterungen, andere Sprachumgebungen

  • Alias- und Heap-Analysen
  • Optimierungen für objektorientierte Sprachen

Teil V: Abschluss und Ausblick

  • Zusammenfassung, Ausblick

Literaturverzeichnis

Anhänge

  • Mathematische Grundlagen
  • Flussgraphen, Darstellungspragmatik
  • Implementierung von Busy und Lazy Code Motion
  • Lazy Strength Reduction

Die Vorbesprechung und daran anschließend die erste Vorlesung finden
am Dienstag, den 03.10.2017, von 15:15 - 16:45 Uhr im Hörsaal GM7
Kleiner Schiffbau, Bauteil BD Hoftrakt (1. Stock), Raumnummer BD01B41,
Getreidemarkt 9, statt.



Weitere Informationen

Aufteilung der ECTS-Punkte:

Der Lehrveranstaltung sind 3.0 ECTS-Punkte zugeordnet. Diese
entsprechen einem durchschnittlichen Lernaufwand von 75
Stunden. Dieser durchschnittliche Lernaufwand verteilt sich in
folgender Weise auf die einzelnen Teile der Lehrveranstaltung:

  • Vorlesungsbesuch und -vor- und -nachbereitung: 35 Std.
  • Übungsaufgaben und Abgabegespräche: 35 Std.
  • Prüfungsvorbereitung und mündliche Prüfung: 5 Std.

Vortragende Personen

Institut

LVA Termine

TagZeitDatumOrtBeschreibung
Di.15:00 - 17:0003.10.2017 - 23.01.2018GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Optimierende Übersetzer - Einzeltermine
TagDatumZeitOrtBeschreibung
Di.03.10.201715:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.10.10.201715:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.31.10.201715:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.07.11.201715:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.14.11.201715:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.21.11.201715:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.28.11.201715:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.05.12.201715:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.12.12.201715:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.19.12.201715:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.09.01.201815:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.16.01.201815:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.23.01.201815:00 - 17:00GM 7 Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
LVA wird geblockt abgehalten

Leistungsnachweis

Beurteilung der Beispiele aus der Übung und mündliche Abschlussprüfung
über Vorlesungs- und Übungsstoff. Weitere Angaben zum Beurteilungs-
und Prüfungsablauf sind auf der homepage der Lehrveranstaltung
gegeben.

LVA-Anmeldung

Von Bis Abmeldung bis
07.10.2017 12:00 13.10.2017 12:00 13.10.2017 12:00

Gruppen-Anmeldung

GruppeAnmeldung VonBis
Optimierende Übersetzer 102.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 202.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 302.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 402.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 502.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 602.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 702.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 802.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 902.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 1002.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 1102.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 1202.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 1302.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 1402.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 1502.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 1602.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 1702.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 1802.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 1902.10.2017 12:0013.10.2017 12:00
Optimierende Übersetzer 2002.10.2017 12:0013.10.2017 12:00

Curricula

StudienkennzahlVerbindlichkeitSemesterAnm.Bed.Info
066 931 Logic and Computation Gebundenes Wahlfach
066 937 Software Engineering & Internet Computing Gebundenes Wahlfach
066 938 Technische Informatik Gebundenes Wahlfach

Literatur

Es wird kein Skriptum zur Lehrveranstaltung angeboten.

Vorkenntnisse

Die Vorlesung schließt inhaltlich an die bisherige Lehrveranstaltung 185.311
Übersetzerbau an und ergänzt die bisherigen Lehrveranstaltungen 185.274
Weiterführender Übersetzerbau und die akuelle Lehrveranstaltung 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.

Vorausgehende Lehrveranstaltungen

Begleitende Lehrveranstaltungen

Weitere Informationen

Sprache

Deutsch