PDF

MODULBESCHREIBUNG

Compilerbau

Kurzzeichen:
M_ComBau
Durchführungszeitraum:
FS 2017 - FS 2019
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:
Luc Bläser
Zusätzlich vorausgesetzte Kenntnisse:
keine
Modultyp:
Standard-Modul für Informatik (Bachelor 05) (Empfohlenes Semester: 6)
Standard-Modul für Informatik (Bachelor 11) (Empfohlenes Semester: 6)
Standard-Modul für Informatik (Bachelor 14) (Empfohlenes Semester: 6)
Standard-Modul für Software Engineering (Bachelor 14)

ECTS-Punkte pro Kategorie

Kategorie:
Informatik (Bachelor 05)
Aufbau Informatik / 4 Punkte
Informatik (Bachelor 11)
Aufbau Informatik / 4 Punkte
Informatik (Bachelor 14)
Grundlagen Informatik und Aufbau Informatik / 4 Punkte
Software Engineering (Bachelor 14)

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

Kürzel:
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:
Vorlesung mit 2 Lektionen pro Woche
Uebung mit 2 Lektionen pro Woche

Beschreibung erzeugt: 2018-12-14 11:55:24
Letzte Moduländerung: 2015-12-09 16:52:55
Modul-Id: 28223
Status: aktiviert