MODULBESCHREIBUNG

Compilerbau

Kurzzeichen:
M_ComBau
Durchführungszeitraum:
FS/17-FS/20
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 genauestens verstehen und auch spezifizieren können.
Verantwortliche Person:
Bläser Luc
Empfohlene Module:
Zusätzlich vorausgesetzte Kenntnisse:
keine
Skriptablage:
Modultyp:
Standard-Modul für Informatik STD_05(Empfohlenes Semester: 6)
Standard-Modul für Informatik STD_11(Empfohlenes Semester: 6)
Standard-Modul für Informatik STD_14(Empfohlenes Semester: 6)

ECTS-Punkte pro Kategorie

Kategorie:
Aufbau Informatik / 4 Punkte
Aufbau Informatik / 4 Punkte
Grundlagen Informatik und Aufbau Informatik / 4 Punkte

Modulbewertung

Bewertungsart:
Note von 1 - 6

Leistungsbewertung

Während des Semesters:

Bewertung des zu entwickelnden Compilers und Laufzeitsystems gemäss Übungsaufgaben.
Die Bewertung setzt sich aus definierten Zwischen-Reviews und einer Schlussbewertung zusammen.

 

Bewertungsart:
Note von 1 - 6

Gewichtung:
Bemerkungen:

ACHTUNG: DIESES MODUL ERFORDERT VIEL AUFWAND IM SEMESTER! SEHR GUTE PROGRAMMIERFÄHIGKEITEN UND GENÜGEND ZEITRESERVEN WERDEN VORAUSSGESETZT.

Kurse in diesem Modul

Compilerbau

Kurzzeichen:
ComBau
Lernziele:

Siehe oben

Plan und Lerninhalt:
  • 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 C#-ähnliche Programmiersprache, inkl. Unterstützung der Objekt-Orientierung und Implementation eines GCs und Just-In-Time-Compilers.

Benötigte Technologien: .NET/C#, Intel 64 Assembler, Unmanaged .NET (evtl. auch C/C++)

Kursart:

(Durchführung gemäss Stundenplan)

Vorlesung mit 2 Lektionen pro Woche
   - Max. Teilnehmer: 126
   - Harte Grenze: ja
Uebung mit 2 Lektionen pro Woche
   - Max. Teilnehmer: 18
   - Harte Grenze: ja

Übergangsregelungen:
Compilerbau (M_CompB) (HS/14)
Compilerbau (M_CompB) (WS/05-HS/13)
Compilerbau und Programmiermodelle (M_CoPro) (HS/15)