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.

2021W, VU, 2.0h, 3.0EC, wird geblockt abgehalten
TUWEL

Merkmale

  • Semesterwochenstunden: 2.0
  • ECTS: 3.0
  • Typ: VU Vorlesung mit Übung
  • Format der Abhaltung: Distance Learning

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
    • Busy Code Motion
    • Lazy Code Motion
    • Sparse Code Motion
    • 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

Abhaltemodus: Online

Horsäle, Übungsgruppenräume und Rechnerlabore stehen auch im WS 2021/22 nur mit stark
eingeschränkter Sitzplatzkapazität und Belegbarkeitshäufigkeit zur Verfügung.
Die verbleibenden stark reduzierten Raumressourcen sind vorzugsweise Lehrveranstaltungen
des 1. Studienjahrs zur Verfügung gestellt. Die Lehrveranstaltung
Optimierende Übersetzer wird deshalb vollständig online abgehalten; um dabei die Vorteile aus der Unmittelbarkeit von Präsenzveranstaltungen möglichst umfassend zu erhalten in der Form von Echtzeitvideokonferenzen.

Methoden

  • Angeleitetes eigenständiges Erlernen und Einüben: Durch Vorträge (Orientierung, Einordnung) und umgekehrte Klassenzimmersitzungen (Diskussion, Vertiefung) 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, Interesse 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, Leit- und Kontrollfragen 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 (ausschließlich online, 17.5h)
    • Vortrag: 12.0h (12 Termine * 1.0h)
    • Umgekehrtes Klassenzimmer: 3.0h (6 Termine * 0.5h)
    • Übungseinheiten: 2.5h (5 Termine * 0.5h)
  • Eigenständige Lernaktivitäten (Home Universitying, 57.0h)
    • Selbstgeleitetes Erarbeiten von Lernergebnissen: 35.0h (Richtwert: Teil I/4.0h, Teil II/12.0h, Teil III/12.0h, Teil IV/6.0h, Teil V/1.0h)
    • Speziell: Lösen der Übungsaufgaben: 20.0h (Richtwert: 4 Angaben * 2.0h + 4 Angaben * 3.0h)
    • Vorbereitung auf die mündliche Prüfung: 2.0h
  • Mündliche Prüfung (ausschließlich online, Videopräsenz): 0.5h

Die Lehrveranstaltung beginnt mit Vorbesprechung und erstem Vortragsteil (abweichend vom üblichen Dienstagstermin bereits) am Montag, den 04.10.2021, 15:15-17:00 Uhr (einschließlich einer 15-minütigen Pause), ausschließlich online in Form einer Echtzeitvideokonferenz. Die Zugangsinformation für die Videokonferenz wird rechtzeitig im TUWEL-Kurs bekannt gegeben.

Vortragende Personen

Institut

Leistungsnachweis

  • Online/offline, ohne Präsenz: Acht beurteilte Abgaben theoretischer und praktischer Übungsaufgaben.
  • Online, Videopräsenz: Eine beurteilte 30-minütige mündliche Prüfung über Vorlesungs- und Übungsstoff.

Weitere beurteilte Leistungsnachweise gibt es nicht.

Beurteilung, Beurteilungsschema

Gesamtbeurteilung gewichtet im Verhältnis 1 zu 1 aus Beurteilungen der theoretischen und praktischen Aufgabenlösungen und der mündlichen Prüfung, falls beide Teilbeurteilungen positiv sind, sonst nicht genügend; bei halben Noten gibt die Note der mündlichen Prüfung den Ausschlag.

Beurteilungsschema Übungsaufgaben: ab 50% genügend, ab 62.5% befriedigend, ab 75% gut, ab 87.5% sehr gut.

LVA-Anmeldung

Von Bis Abmeldung bis
01.09.2021 01:00 08.10.2021 12:00 29.10.2021 12:00

Gruppen-Anmeldung

GruppeAnmeldung VonBis
Optimierende Übersetzer 104.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 204.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 304.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 404.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 504.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 604.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 704.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 804.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 904.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 1004.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 1104.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 1204.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 1304.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 1404.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 1504.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 1604.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 1704.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 1804.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 1904.10.2021 12:0015.10.2021 12:00
Optimierende Übersetzer 2004.10.2021 12:0015.10.2021 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

bei Bedarf in Englisch