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.

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

Merkmale

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

Lernergebnisse

Nach positiver Absolvierung der Lehrveranstaltung sind Studierende in der Lage (u.a.)

  • die grundlegenden Prinzipien und Konzepte optimierender Übersetzung, ihrer theoretischen Fundierung, mathematischen Grundlagen und von Methoden zu ihrem empirischen und formalen Korrektheits-, Vollständigkeits- und Optimalitätsnachweis am Beispiel typischer praxisrelevanter Programmanalysen und -transformationen optimierender Übersetzung aufzuzeigen, zu beurteilen und wertend einzuordnen.
  • diese Prinzipien und Konzepte auf neue Aufgaben optimierender Übersetzung zu übertragen und anzuwenden und das gewählte Vorgehen sachlich und fachlich zu begründen.
  • die Möglichkeiten und Grenzen optimierender Übersetzung im Spannungsfeld von Entscheidbarkeit, Skalierbarkeit und Wirksamkeit als Ganzes, auf der Ebene von Analyse- und Optimierungsproblemen und konkreter Analyse- und Optimierungsverfahren einzuordnen, zu beurteilen und daraus Empfehlungen für die allgemeine Anwendungsprogrammierung abzuleiten.

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

Ausgewählte Leseempfehlungen

  • Flemming Nielson, Hanne Riis Nielson, Chris Hankin. Principles of Program Analysis.Springer-V., 2. Auflage, 452 Seiten, ISBN 3-540-65410-0, 2005.
  • Y. N. Srikant, Priti Shankar. The Compiler Design Handbook: Optimizations & Machine Code Generation. CRC Press, 1. Auflage, 928 Seiten, ISBN 084931240X, 2002. 
  • Keith D. Cooper, Linda Torczon. Engineering a Compiler. Morgan Kaufmann, 801 Seiten, ISBN 155860698X, 2003. 
  • Steven S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann, 856 Seiten, ISBN 1558603204, 1997.

Methoden

  • Angeleitetes eigenständiges Erlernen und Einüben: Durch Vorträge und umgekehrtes Klassenzimmer angeleitetes eigenständiges Erlernen und Einüben der in den Lernergebnissen beschriebenen Fähigkeiten mithilfe zur Verfügung gestellter Lehr- und Lernunterlagen, theoretischer und praktischer Übungsaufgaben und weiterer nach Bedarf selbstgewählter Materialien aus ergänzend und vertiefend vorgeschlagenen Lehrbüchern, Tutorien und wissenschaftlichen Originalarbeiten.
  • Vorbild- und rückmeldungsgeleitetes Lernen: Präsentieren, erläutern,
    begründen, vergleichen, wertend gegenüberstellen eigener und fremder
    Aufgabenlösungen aus sachlicher und fachlicher Sicht in geleiteten
    Übungseinheiten.
  • Selbsteinschätzungstests: Tests zur regelmäßigen Selbsteinschätzung
    und Selbstreflexion des eigenen bisherigen Lernfortschritts und Lernerfolgs.

Prüfungsmodus

Prüfungsimmanent

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 Lernaktivitäten der Lehrveranstaltung
(die Angaben Teil I bis Teil V beziehen sich auf Teil I bis Teil V
der Lehrveranstaltungsunterlagen):

  • Angeleitete Lernaktivitäten (17.25h)
    • Vortrag: 9.0h (12 Einheiten * 0.75h)
    • Umgekehrtes Klassenzimmer: 5.25h (7 Einheiten * 0.75h)
    • Übungseinheiten: 3.0h (4 Einheiten * 0.75h)
  • Eigenständige Lernaktivitäten (57.25h)
    • Selbstständiges Erarbeiten von Lernergebnissen: 30.0h (Vorschlag: Teil I/4.0h, Teil II/12.0h, Teil III/9.0h, Teil IV/4.0h, Teil V/1.0h)
    • Speziell: Lösen der Übungsaufgaben: 24.0h (Vorschlag: 8 Angaben * 3.0h)
    • Vorbereitung auf die schriftliche Prüfung: 3.25h
  • Mündliche Prüfung: 0.5h

Die Lehrveranstaltung beginnt mit Vorbesprechung und erstem Vortragsteil
am Dienstag, den 01.10.2019, von 15:15 - 16:45 Uhr im Hörsaal GM7
Kleiner Schiffbau, Bauteil BD Hoftrakt (1. Stock), Raumnummer BD01B41,
Getreidemarkt 9.

Vortragende

Institut

LVA Termine

TagZeitDatumOrtBeschreibung
Di.15:00 - 17:0001.10.2019 - 21.01.2020Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Optimierende Übersetzer - Einzeltermine
TagDatumZeitOrtBeschreibung
Di.01.10.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.08.10.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.15.10.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.22.10.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.29.10.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.05.11.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.12.11.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.19.11.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.26.11.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.03.12.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.10.12.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.17.12.201915:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.07.01.202015:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.14.01.202015:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
Di.21.01.202015:00 - 17:00Kleiner Schiffbau LVA 185.A04 Optimierende Compiler
LVA wird geblockt abgehalten

Leistungsnachweis

  • Acht beurteilte Abgaben theoretischer und praktischer Übungsaufgaben.
  • Eine beurteilte 30-minütige mündliche Prüfung über Vorlesungs- und Übungsstoff.

LVA-Anmeldung

Von Bis Abmeldung bis
01.09.2019 01:00 11.10.2019 12:00 31.10.2019 12:00

Gruppen-Anmeldung

GruppeAnmeldung VonBis
Optimierende Übersetzer 107.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 207.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 307.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 407.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 507.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 607.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 707.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 807.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 907.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 1007.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 1107.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 1207.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 1307.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 1407.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 1507.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 1607.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 1707.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 1807.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 1907.10.2019 12:0018.10.2019 12:00
Optimierende Übersetzer 2007.10.2019 12:0018.10.2019 12:00

Curricula

Literatur

Es wird kein Skriptum zur Lehrveranstaltung angeboten.

Vorkenntnisse

Die Vorlesung schließt inhaltlich an die Lehrveranstaltung 185.A48
Übersetzerbau an und ergänzt die bisherige 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

Vertiefende Lehrveranstaltungen

Weitere Informationen

Sprache

Deutsch