Zur Modulseite PDF generieren

#41162 / #1

Seit SoSe 2024

Deutsch, Englisch

Compiling Techniques
Compilertechniken

6

Steuwer, Michel

Benotet

Portfolioprüfung

Englisch

Zugehörigkeit


Fakultät IV

Institut für Softwaretechnik und Theoretische Informatik

34353200 FG Programmiersprachen

Keine Angabe

Kontakt


EN 21

Steuwer, Michel

lehre@compl.tu-berlin.de

Lernergebnisse

Nach Abschluss dieses Kurses werden die Teilnehmer in der Lage sein: * den Aufbau moderner Compiler zu verstehen * Compilieraufgaben zu analysieren und Standardcompilierverfahren anzuwenden * Entwurf, Implementierung und Anwendung von Modifikationen an Standardcompilierverfahren und -algorithmen * einen voll funktionsfähigen Compiler nach modernen Compiler-Entwurfsgrundsätzen zu implementieren

Lehrinhalte

In diesem Kurs lernen die Studierenden die Phasen eines modernen Programmiersprachen-Compilers kennen, wobei der Schwerpunkt auf den in der Praxis verwendeten Techniken liegt. Die Studierenden lernen die Implementierung von Compilerpässen in einem realen Compiler-Framework kennen. Im Rahmen des Kursprojekts müssen die Studierenden einen vollständigen Compiler für eine einfache Programmiersprache von Grund auf implementieren, der auf eine reale Maschinenbaugruppe ausgerichtet ist. * Einführung: Struktur eines Compilers * Lexikalische Analyse: Token, reguläre Ausdrücke, Lex * Parsing: kontextfreie Grammatiken, prädiktives und LR-Parsing * Abstrakte Syntax: semantische Aktionen, abstrakte Parse-Bäume * Semantische Analyse: Symboltabellen, bindings, Typprüfung * Zwischencode: Zwischendarstellungen, SSA, Übersetzungen * Liveness analysis: Lösung von Datenflussgleichungen * Befehlsauswahl: Algorithmen zur Auswahl, RISC und CISC * Registerzuweisung: colouring by simplification, coalescing * Echte Assemblersprache: ARM, MIPS, RISC-V, oder ähnlich * Fortgeschrittene Themen können sein: automatische Parallelisierung, beliebte Open-Source-Compiler: GCC, LLVM, MLIR

Modulbestandteile

Pflichtbereich

Die folgenden Veranstaltungen sind für das Modul obligatorisch:

LehrveranstaltungenArtNummerTurnusSpracheSWS ISIS VVZ
Compiling TechniquesVLSoSede2
Compiling TechniquesPRSoSede4

Arbeitsaufwand und Leistungspunkte

Compiling Techniques (VL):

AufwandbeschreibungMultiplikatorStundenGesamt
Präsenzzeit15.02.0h30.0h
Vor-/Nachbereitung15.02.0h30.0h
60.0h(~2 LP)

Compiling Techniques (PR):

AufwandbeschreibungMultiplikatorStundenGesamt
Präsenzzeit15.04.0h60.0h
Vor-/Nachbereitung15.04.0h60.0h
120.0h(~4 LP)
Der Aufwand des Moduls summiert sich zu 180.0 Stunden. Damit umfasst das Modul 6 Leistungspunkte.

Beschreibung der Lehr- und Lernformen

Dieses Modul besteht aus einer wöchentlichen Vorlesung, in der die Grundlagen des modernen Compilerentwurfs vermittelt werden. Der Hauptbestandteil dieses Moduls ist ein Praktikum, in dem die Studierenden individuell einen voll funktionsfähigen Compiler implementieren. Betreute labs unterstützen die Studierenden bei ihrer praktischen Arbeit.

Voraussetzungen für die Teilnahme / Prüfung

Wünschenswerte Voraussetzungen für die Teilnahme an den Lehrveranstaltungen:

Die Module "Algorithmen und Datenstrukturen" sowie "Rechnerorganisation" und "Systemprogrammierung", sowie solide Programmierkenntnisse in Python werden vorausgesetzt.

Verpflichtende Voraussetzungen für die Modulprüfungsanmeldung:

Dieses Modul hat keine Prüfungsvoraussetzungen.

Abschluss des Moduls

Benotung

Benotet

Prüfungsform

Portfolioprüfung

Art der Portfolioprüfung

100 Punkte insgesamt

Sprache(n)

Deutsch, Englisch

Prüfungselemente

NamePunkteKategorieDauer/Umfang
Kursarbeit 1 (Lexikalische Analyse & Parsing)30praktisch3 Wochen
Kursarbeit 2 (Semantische Analyse)30praktisch3 Wochen
Kursarbeit 3 (Codegenerierung)30praktisch3 Wochen
Kursarbeit 4 (Optimierung)10praktisch2 Wochen

Notenschlüssel

Notenschlüssel »Notenschlüssel 2: Fak IV (2)«

Gesamtpunktzahl1.01.31.72.02.32.73.03.33.74.0
100.0pt95.0pt90.0pt85.0pt80.0pt75.0pt70.0pt65.0pt60.0pt55.0pt50.0pt

Dauer des Moduls

Für Belegung und Abschluss des Moduls ist folgende Semesteranzahl veranschlagt:
1 Semester.

Dieses Modul kann in folgenden Semestern begonnen werden:
Sommersemester.

Maximale teilnehmende Personen

Dieses Modul ist nicht auf eine Anzahl Studierender begrenzt.

Anmeldeformalitäten

Siehe https://compl.tu-berlin.de sowie die erste Vorlesung.

Literaturhinweise, Skripte

Skript in Papierform

Verfügbarkeit:  nicht verfügbar

 

Skript in elektronischer Form

Verfügbarkeit:  verfügbar
Zusätzliche Informationen:
https://compl.tu-berlin.de

 

Literatur

Empfohlene Literatur
Keine empfohlene Literatur angegeben

Zugeordnete Studiengänge


Diese Modulversion wird in folgenden Studiengängen verwendet:

Studiengang / StuPOStuPOsVerwendungenErste VerwendungLetzte Verwendung
Computer Engineering (M. Sc.)112SoSe 2024SoSe 2025
Computer Science (Informatik) (M. Sc.)112SoSe 2024SoSe 2025
Elektrotechnik (M. Sc.)16SoSe 2024SoSe 2025
Informatik (B. Sc.)13SoSe 2024SoSe 2025
Technische Informatik (B. Sc.)13SoSe 2024SoSe 2025
Wirtschaftsinformatik (B. Sc.)26SoSe 2024SoSe 2025

Sonstiges

Keine Angabe