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.

2018W, 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).

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 02.10.2018, 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

Institut

LVA Termine

TagZeitDatumOrtBeschreibung
Di15:00 - 17:0002.10.2018 - 22.01.2019Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Optimierende Übersetzer - Einzeltermine
TagDatumZeitOrtBeschreibung
Di02.10.201815:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di09.10.201815:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di16.10.201815:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di23.10.201815:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di30.10.201815:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di06.11.201815:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di13.11.201815:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di20.11.201815:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di27.11.201815:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di04.12.201815:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di11.12.201815:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di18.12.201815:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di08.01.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di15.01.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di22.01.201915:00 - 17:00Kleiner 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
01.10.2018 01:00 12.10.2018 12:00 26.10.2018 12:00

Gruppen-Anmeldung

GruppeAnmeldung VonBis
Optimierende Übersetzer 101.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 201.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 301.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 401.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 501.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 601.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 701.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 801.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 901.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 1001.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 1101.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 1201.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 1301.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 1401.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 1501.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 1601.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 1701.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 1801.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 1901.10.2018 12:0012.10.2018 12:00
Optimierende Übersetzer 2001.10.2018 12:0012.10.2018 12:00

Curricula

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