Programmiersprachen und Compilerbau
5 ECTS Deutsch B.Sc.
Letzte Aktualisierung: 28.02.2025
Grunddaten
Kürzel PUC
Dauer des Moduls 1 Semester
Angeboten im Sommersemester
Veranstaltungsort Gummersbach
Verantwortliche
Modulverantwortung
CHE
Christoph Hegemann
Lehrauftrag
Lehrende
CHE
Christoph Hegemann
Lehrauftrag
Prüfung
Prüfungsformen
Mündliche Prüfungen
Projektarbeit
Prüfungsphasen
Außerhalb der Prüfungswochen
Prüfende
1. Christoph Hegemann
2. Alexander Dobrynin
Workload
Vorlesung 42 h
Übung 0 h
Seminar 0 h
Praktikum 0 h
Projektbetreuung 0 h
Projektarbeit 0 h
Selbststudium 108 h
Gesamt 150 h
Studiengänge
Pflichtmodul
Keine Zuordnung
Wahlmodul
Informatik PO-2
Sem. 4
IT-Management (Informatik) PO-2
Sem. 4
Medieninformatik PO-4
Sem. 4
Wirtschaftsinformatik PO-5
Sem. 4
Voraussetzungen
Zwingend
Keine Angabe
Empfohlen
Fortgeschrittene Programmierkenntnisse
Angestrebte Lernergebnisse
- Verständnis für grundlegende Abstraktionen in Programmiersprachen, und die Fähigkeit diese auf neu gelernte Sprachen zu übertragen
- High-level Features und Konzepte in Programmiersprachen in Low-level Maschinenkonzepte übersetzen und ihre Performance Charakteristiken abwägen
- Parser für textuelle Formate implementieren
- Technische Spezifikationen lesen, verstehen, und implementieren (am Beispiel von WebAssembly)
- Dekomposition komplexer Datentransformationensprobleme in eine Folge von kleineren Transformation
Modulinhalte
Program Abstraction and Representation (FPL-Syntax/FPL-Abstraction)
- Repräsentation von Programmen als Datentypen
- Konkrete und Abstrakte Syntax Bäume
- Lexikalische Analyse
- Parsen mittels rekursivem Abstieg
Semantic analysis (FPL-Semantics/FPL-Types)
- Name resolution
- Spezifizieren eines Typsystems mittels typing judgements
- Implementieren eines Bidirektionalen Typecheckers
Translation (FPL-Translation/FPL-Code)
- Lowering von High-level Konstrukten
- Typgerichtete Operator Auflösung
- Repräsentation von Structs/Variants/... in linearem Speicher
- Implementieren von Polymorphismus via Monomorphization
WebAssembly as a low-level bytecode (FPL-Systems/FPL-Code)
- Virtuelle Maschinen und ihre Instruktionen (Bytecode)
- Generieren und enkodieren von WebAssembly code
Lehr- und Lernmethoden (Medienformen)
- Vorlesung/Seminar
- Projektarbeit
Empfohlene Literatur
WebAssembly 1.0 specification: https://webassembly.github.io/multi-value/core/_download/WebAssembly.pdf
Hintergrundwissen (optional):
Types and Programming Languages - Benjamin C. Pierce (ISBN 0-262-16209-1) Modern Compiler Implementation in ML/Java - Andrew W. Appel
Besonderheiten
Keine Angabe