{width="80%"}
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 grundlegendes Verständnis für die wichtigsten Konzepte im Compilerbau. Wir schauen uns dazu relevante aktuelle Tools und Frameworks an und setzen diese bei der Erstellung eines kleinen Compiler-Frontends für C++ ein.
:::::: {.tabs groupid="modul-po"} ::: {.tab title="IFM 3.1 CB (PO23, 3. Semester)"}
Vorlesung (2 SWS) | Praktikum (2 SWS) |
---|---|
Mi, 08:00 - 09:30 Uhr (online) | S3, G1: Di, 11:30 - 13:00 Uhr (online/Präsenz J101) |
(Carsten: Flipped Classroom, BC: Vorlesung) | S3, G2: Fr, 14:00 - 15:30 Uhr (online/Präsenz J101) |
S3, G3: Mo, 09:15 - 10:45 Uhr (online/Präsenz J101) | |
(Carsten: online, BC: Präsenz) |
Online-Sitzungen per Zoom (Zugangsdaten siehe ILIAS IFM 3.1 CB (PO23, 3. Semester)). Sie können hierzu den Raum J101 (siehe Stundenplan) nutzen.
::: ::: {.tab title="IFM 5.21 CB (PO18, 5. Semester)"}
Vorlesung (2 SWS) | Praktikum (2 SWS) |
---|---|
Mi, 08:00 - 09:30 Uhr (online) | S5, G1: Mi, 09:30 - 11:00 Uhr (online) |
(Carsten: Flipped Classroom, BC: Vorlesung) | S5, G2: Mi, 09:30 - 11:00 Uhr (online) |
S5, G3: Mi, 09:30 - 11:00 Uhr (online) | |
(Carsten: online, BC: online) |
Online-Sitzungen per Zoom (Zugangsdaten siehe IFM 5.21 CB (PO18, 5. Semester)). Sie können hierzu den Raum J101 (siehe Stundenplan) nutzen.
::: ::::::
:::::::::::: {.tabs groupid="modul-po"} ::::::::: {.tab title="IFM 3.1 CB (PO23, 3. Semester)"}
Parcoursprüfung plus Testat, 5 ECTS (PO23)
Testat: Vergabe der Credit-Points
("erfolgreich bearbeitet": Bearbeitung in 3er Teams, je mindestens 60% bearbeitet, fristgerechte Abgabe der Lösungen im ILIAS, Vorstellung der Lösungen im Praktikum)
:::::: {.tabs groupid="exams"} ::: {.tab title="Prüfung im ersten Zeitraum"}
Stationen:
Beide Stationen ergeben zu je 50% die Gesamtnote.
::: ::: {.tab title="Prüfung im zweiten Zeitraum"}
Stationen:
Die Note der mündlichen Prüfung ergibt die Gesamtnote.
::: ::::::
::::::::: ::::::::: {.tab title="IFM 5.21 CB (PO18, 5. Semester)"}
Parcoursprüfung plus Testat, 5 ECTS (PO18)
Testat: Vergabe der Credit-Points
("erfolgreich bearbeitet": Bearbeitung in 3er Teams, je mindestens 60% bearbeitet, fristgerechte Abgabe der Lösungen im ILIAS, Vorstellung der Lösungen im Praktikum)
:::::: {.tabs groupid="exams"} ::: {.tab title="Prüfung im ersten Zeitraum"}
Stationen:
Beide Stationen ergeben zu je 50% die Gesamtnote.
::: ::: {.tab title="Prüfung im zweiten Zeitraum"}
Stationen:
Die Note der mündlichen Prüfung ergibt die Gesamtnote.
::: ::::::
::::::::: ::::::::::::
:::::: {.tabs groupid="modul-po"} ::: {.tab title="IFM 3.1 CB (PO23, 3. Semester)"}
Hier finden Sie einen abonnierbaren Google Kalender IFM 3.1 CB (PO23, 3. Semester) mit allen Terminen der Veranstaltung zum Einbinden in Ihre Kalender-App.
Abgabe der Übungsblätter jeweils Montag bis 09:00 Uhr im ILIAS. Vorstellung der Lösung im jeweiligen Praktikum in der Abgabewoche.
Monat | Woche | Vorlesung | Lead | Abgabe Aufgabenblatt | Vorstellung Praktikum |
---|---|---|---|---|---|
Oktober | 41 | 09.: Orga (Zoom); Überblick, Sprachen, Anwendungen | Carsten, BC | ||
42 | 16.: Reguläre Sprachen | BC | |||
43 | 23.: CFG | BC | 21.: B01 Reguläre Sprachen | 22. / 25. / 21. (BC, Präsenz) | |
44 | 29.: 18:00 - 19:30 Uhr (online): Edmonton I: ANTLR + Live-Coding | Edmonton | |||
44 | 30.: Lexer mit ANTLR, Parser mit ANTLR | Carsten | |||
November | 45 | 06.: Dienstbesprechung | 04.: B02 CFG | 05. / 08. / 04. (BC, Präsenz) | |
46 | 13.: Überblick Symboltabellen, Symboltabellen: Scopes, Symboltabellen: Funktionen, Symboltabellen: Klassen | Carsten | 11.: B03 ANTLR | 12. / 15. / 11. (Carsten, online) | |
47 | 20.: [09:45 - 10:45 Uhr (B40): Parcoursprüfung: Station 1 ILIAS (Grammar, Lexing, Parsing)]{.alert} | 18.: B04 Symboltabellen | 19. / 22. / 18. (Carsten, online) | ||
48 | 26.: 18:00 - 19:30 Uhr (online): Edmonton II: Vorträge Mindener Projekte | Minden | |||
48 | 27.: Überblick Zwischencode, Überblick Backend (LLVM) | BC, Carsten | |||
Dezember | 49 | 03.: 18:00 - 19:30 Uhr (online): Edmonton III: Vorträge Edmontoner Projekte | Edmonton | ||
49 | 04.: AST-basierte Interpreter 1, AST-basierte Interpreter 2 | Carsten | |||
50 | 11.: C++ I: Datentypen, Arrays, Funktionen, Pointer, Referenzen | Carsten | 09.: B05 Interpreter | 10. / 13. / 09. (Carsten, online) | |
51 | 18.: Projektwoche Semester 1+3 | ||||
52 | 25.: Weihnachtspause | ||||
Januar | 01 | 01.: Weihnachtspause | |||
02 | 08.: C++ II: Klassen, Operatoren, Vererbung, Polymorphie | Carsten | 06.: B06 C++ | 07. / 10. / 06. (Carsten, online) | |
03 | 15.: Freies Arbeiten/Puffer | ||||
04 | 22.: [Parcoursprüfung: Station 2 B07+B08 (VL- und Praktika-Slots, siehe Ankündigung)]{.alert} | Carsten, BC | 21. / 24. / 20. (Carsten/BC, online) | ||
(Prüfungsphase I) | Keine separate Prüfung | ||||
(Prüfungsphase II) | [Parcoursprüfung: mdl. Prüfung (alle Themen)]{.alert} |
::: ::: {.tab title="IFM 5.21 CB (PO18, 5. Semester)"}
Hier finden Sie einen abonnierbaren Google Kalender IFM 5.21 CB (PO18, 5. Semester) mit allen Terminen der Veranstaltung zum Einbinden in Ihre Kalender-App.
Abgabe der Übungsblätter jeweils Mittwoch bis 09:00 Uhr im ILIAS. Vorstellung der Lösung im jeweiligen Praktikum in der Abgabewoche.
Monat | Tag | Vorlesung | Lead | Abgabe Aufgabenblatt & Vorstellung Praktikum |
---|---|---|---|---|
Oktober | 09. | Orga (Zoom); Überblick, Sprachen, Anwendungen | Carsten, BC | |
16. | Reguläre Sprachen | BC | ||
23. | CFG | BC | B01 Reguläre Sprachen (BC, Präsenz) | |
29. | 18:00 - 19:30 Uhr (online): Edmonton I: ANTLR + Live-Coding | Edmonton | ||
30. | Lexer mit ANTLR, Parser mit ANTLR | Carsten | ||
November | 06. | Dienstbesprechung | B02 CFG (BC, Präsenz) | |
13. | Überblick Symboltabellen, Symboltabellen: Scopes, Symboltabellen: Funktionen, Symboltabellen: Klassen | Carsten | B03 ANTLR (Carsten, online) | |
20. | [08:00 - 09:30 Uhr (online): Vortrag: Vorstellung der Lösung von B04x ("Generalprobe")]{.alert} | |||
26. | [18:00 - 19:30 Uhr (online): Parcoursprüfung: Station 1 / Edmonton II: Vorträge Mindener Projekte: B04x]{.alert} | Minden (S5) | ||
27. | Überblick Zwischencode, Überblick Backend (LLVM) | BC, Carsten | ||
Dezember | 03. | 18:00 - 19:30 Uhr (online): Edmonton III: Vorträge Edmontoner Projekte | Edmonton | |
04. | AST-basierte Interpreter 1, AST-basierte Interpreter 2 | Carsten | ||
11. | C++ I: Datentypen, Arrays, Funktionen, Pointer, Referenzen | Carsten | B05x Interpreter (Carsten, online) | |
18. | Projektwoche Semester 1+3 | |||
25. | Weihnachtspause | |||
Januar | 01. | Weihnachtspause | ||
08. | C++ II: Klassen, Operatoren, Vererbung, Polymorphie | Carsten | B06x C++ und Pointer/Speicherverwaltung (Runtime in Java) (Carsten, online) | |
15. | Freies Arbeiten/Puffer | |||
22. | [Parcoursprüfung: Station 2 B07x+B08x (VL- und Praktika-Slots, siehe Ankündigung)]{.alert} | Carsten, BC | (Carsten/BC, online) | |
(Prüfungsphase I) | Keine separate Prüfung | |||
(Prüfungsphase II) | [Parcoursprüfung: mdl. Prüfung (alle Themen)]{.alert} |
::: ::::::
Ü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.)
::: slides
Unless otherwise noted, this work is licensed under CC BY-SA 4.0. :::