Modulbeschreibung

Compilerbau

ECTS-Punkte:
4
Lernziele:
  • Die Konzepte und Techniken der Compiler und Laufzeitsysteme für moderne objekte-orientierte Programmiersprachen verstehen.
  • Eigene vollständige Compiler und Laufzeitsysteme für objektorientierte Programmiersprachen auf aktuellen Prozessor-Plattformen entwickeln können.
  • Die Syntax und Semantik von modernen Programmiersprachen verstehen und spezifizieren können.

Kurse in diesem Modul

Compilerbau:
  • Programmiersprachspezifikation: Syntax und Semantik

  • Architektur von Compilern und Laufzeitsystemen

  • Lexer/Scanner

  • Parser (LL vs. LR), inkl. Diskussion von Generator-Tools

  • Zwischendarstellung (Symbol Table, Abstract Syntax Tree)

  • Semantic Analysis: Symbolauflösung, Type Checking, Semantic Rules

  • Code Generierung (für Zwischensprache und Intel 64 Prozessor)

  • Zwischensprachen (stack-basiert)

  • Virtuelle Maschine mit Loader und Interpreter

  • Just-In-Time Compiler (JITer) für Intel 64 Prozessoren

  • Elementare Laufzeitunterstützung: Stack und Heap Management

  • OO-Laufzeitunterstützung: Vererbung und Type Tests, Virtual Tables und Dynamic Dispatch

  • Garbage Collecton: Mark And Sweep, Root Set, Diskusson fortgeschrittener GCs (Copy Collector, Incremental GC, Generational/Partitoned GC)

  • Statische Analyse und Optimierung: Datenfluss-Analyse (je nach verfügbaren Vorlesungswochen im Semester)

Im Rahmen der Übungen entwickeln die Teilnehmer einen Compiler und eine Virtual Machine für eine Java-ähnliche Programmiersprache, inkl. Unterstützung der Objekt-Orientierung und Implementation eines GCs und Just-In-Time-Compilers.

Benötigte Technologien: Java, Intel 64 Assembler

Vorlesung mit 2 Lektionen pro Woche
Uebung mit 2 Lektionen pro Woche
Disclaimer

Diese Beschreibung ist rechtlich nicht verbindlich! Weitere Informationen finden Sie in der detaillierten Modulbeschreibung.