| has_license | no_beamer | title |
|---|---|---|
true |
true |
MIF 1.5: Concepts of Programming Languages (Winter 2025/26) |
Der Compiler ist das wichtigste Werkzeug in der Informatik. In der Königsdisziplin der Informatik schließt sich der Kreis, hier kommen die unterschiedlichen Algorithmen und Datenstrukturen und Programmiersprachenkonzepte zur Anwendung.
In diesem Modul geht es um ein fortgeschrittenes Verständnis für interessante Konzepte im Compilerbau sowie um grundlegende Konzepte von Programmiersprachen und -paradigmen. Wir schauen uns dazu relevante aktuelle Tools und Frameworks an und setzen diese bei der Erstellung eines Bytecode-Compilers für unterschiedliche Programmiersprachen für die Java-VM oder WASM ein.
- Lexikalische Analyse: Scanner/Lexer
- Reguläre Sprachen
- Manuelle Implementierung, Parsergeneratoren (ANTLR, Flex, ...)
- Syntaxanalyse: Parser
- Kontextfreie Grammatiken (CFG), Chomsky
- LL-Parser (Top-Down-Parser)
- LR-Parser (Bottom-Up-Parser)
- Manuelle Implementierung, Parsergeneratoren (ANTLR, Bison, ...)
- Semantische Analyse und Optimierungen
- Symboltabellen
- Typen, Typ-Inferenz, Type Checking
- Datenfluss- und Kontrollfluss-Analyse
- Optimierungen: Peephole u.a.
- Zwischencode: Intermediate Representation (IR), LLVM-IR
- Interpreter: AST-Traversierung vs. Bytecode/VM, Garbage Collection
- Code-Generierung
- Programmiersprachen-Konzepte: OOP, FP, LP, CP u.a. und die Auswirkungen auf Compiler/Interpreter und Laufzeitumgebung
- BC George
- Carsten Gips (Sprechstunde nach Vereinbarung)
| Seminaristischer Unterricht (2 SWS) | Praktikum (3 SWS) |
|---|---|
| Di, 09:45 - 11:15 Uhr (Zoom) | Di, 11:30 - 13:45 Uhr (Zoom) |
Durchführung des seminaristischen Unterrichts als Flipped Classroom (Carsten) bzw. als reguläre Vorlesung (BC). Zugangsdaten Zoom siehe ILIAS.
Hier finden Sie einen abonnierbaren Google Kalender mit allen Terminen der Veranstaltung zum Einbinden in Ihre Kalender-App.
Mündliche Prüfung plus Studienleistung (Portfolio), 10 ECTS
-
Studienleistung: "Portfolio" - Kriterien je Person:
- Teilnahme an beiden Edmonton/Minden-Terminen mit aktiver Beteiligung, pro Team ist am ersten Treffen ein Vortrag zum DSL-Projekt a 45 Minuten zu halten (Englisch!)
- Kurzvortrag "PL Features" a 20 Minuten (pro Team) plus Diskussionsleitung
- Vortrag "Compiler" a 60 Minuten (pro Team)
- Abschlussvortrag zum DSL-Projekt am Semesterende (20.01.) a 30 Minuten (pro Team)
Je Kriterium: Abgabe eines Post Mortem im ILIAS (jede Person individuell)
-
Gesamtnote: Mündliche Prüfung (einzeln, ca. 45 Minuten)
::: {.details title="Hinweise"}
- Die Bearbeitung der Leistungen erfolgt im Team.
- Ein Team umfasst 3 Personen.
- Die Post Mortems sind individuell zu erstellen und abzugeben.
- "Aktive Beteiligung" umfasst Anwesenheit und sachbezogene Beiträge; Anwesenheit/Beteiligung werden dokumentiert.
\smallskip
-
Post Mortem: Jede Person beschreibt individuell(!) die Bearbeitung des jeweiligen Kriteriums bzw. die Teilnahme am Edmonton/Minden-Meeting zurückblickend mit mind. 150 bis max. 400 Wörtern (Nutzlast; Überschriften und Links zählen nicht mit). Gehen Sie dabei aussagekräftig und nachvollziehbar auf folgende Punkte ein:
- Zusammenfassung: Was wurde gemacht bzw. was wurde auf dem Meeting besprochen?
- Details: Kurze Beschreibung besonders interessanter Aspekte.
- Reflexion: Was war der schwierigste Teil? Wie haben Sie dieses Problem gelöst?
- Reflexion: Was haben Sie gelernt oder (besser) verstanden?
- Team: Mit wem haben Sie zusammengearbeitet?
- Link zu Ihrem Repo mit den relevanten Artefakten (Lösung, Slides für den Vortrag, ...).
Für die Edmonton/Minden-Meetings passen Sie bitte die Punkte (1) bis (4) und (5) entsprechend inhaltlich an, (6) entfällt für das zweite Meeting.
Die Post Mortems geben Sie bitte pro Person bis spätestens zur letzten gemeinsamen Sitzung im ILIAS ab.
Siehe auch Compiler-CampusMinden/CPL-Vorlesung-Master-W25#2.
:::
- "Compilers: Principles, Techniques, and Tools". Aho, A. V. und Lam, M. S. und Sethi, R. und Ullman, J. D. and Bansal, S., Pearson India, 2023. ISBN 978-9-3570-5488-1. Online über die O'Reilly-Lernplattform.
- "Crafting Interpreters". Nystrom, R., Genever Benning, 2021. ISBN 978-0-9905829-3-9. Online.
- "Engineering a Compiler". Torczon, L. und Cooper, K., Morgan Kaufmann, 2012. ISBN 978-0-1208-8478-0. Online über die O'Reilly-Lernplattform.
- "Introduction to Compilers and Language Design". Thain, D., 2023. ISBN 979-8-655-18026-0. Online.
- "Writing a C Compiler". Sandler, N., No Starch Press, 2024. ISBN 978-1-0981-8222-9. Online über die O'Reilly-Lernplattform.
- "Seven Languages in Seven Weeks". Tate, B.A., Pragmatic Bookshelf, 2010. ISBN 978-1-93435-659-3. Online über die O'Reilly-Lernplattform.
Über das Projekt "We CAN virtuOWL" der Fachhochschule Bielefeld ist im Frühjahr 2021 eine Kooperation mit der University of Alberta (Edmonton/Alberta, Kanada) im Modul "Compilerbau" gestartet.
Wir freuen uns, auch in diesem Semester wieder drei gemeinsame Sitzungen für beide Hochschulen anbieten zu können. (Diese Termine werden in englischer Sprache durchgeführt.)
Unless otherwise noted, this work by BC George, Carsten Gips and contributors is licensed under CC BY-SA 4.0. See the credits for a detailed list of contributing projects.

