cb-vorlesung-bachelor

Lecture "Compilerbau" (B.Sc.)

https://github.com/compiler-campusminden/cb-vorlesung-bachelor

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (2.6%) to scientific vocabulary

Keywords

antlr code-generation compiler-construction hacktoberfest interpreter llvm-ir oer open-educational-resources teaching-materials teaching-website
Last synced: 6 months ago · JSON representation

Repository

Lecture "Compilerbau" (B.Sc.)

Basic Info
Statistics
  • Stars: 3
  • Watchers: 2
  • Forks: 1
  • Open Issues: 47
  • Releases: 0
Topics
antlr code-generation compiler-construction hacktoberfest interpreter llvm-ir oer open-educational-resources teaching-materials teaching-website
Created almost 4 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation Codeowners

readme.md


haslicense: true nobeamer: true

title: "IFM 3.1: Compilerbau (Winter 2025/26)"

{width="80%"}

Kursbeschreibung

Der Compiler ist das wichtigste Werkzeug in der Informatik. In der Knigsdisziplin der Informatik schliet sich der Kreis, hier kommen die unterschiedlichen Algorithmen und Datenstrukturen und Programmiersprachenkonzepte zur Anwendung.

In diesem Modul geht es um ein grundlegendes Verstndnis fr 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 fr C++ ein.

berblick Modulinhalte

  1. Lexikalische Analyse: Scanner/Lexer
    • Regulre Sprachen
    • Generierung mit ANTLR
  2. Syntaxanalyse: Parser
    • Kontextfreie Grammatiken (CFG)
    • LL-Parser (Top-Down-Parser)
    • Generierung mit ANTLR
  3. Semantische Analyse: Symboltabellen
    • Namen und Scopes
    • Typen, Klassen, Polymorphie
  4. Interpreter: AST-Traversierung
  5. C++ als zu verarbeitende Programmiersprache

Team

Kursformat

| Vorlesung (2 SWS) | Praktikum (2 SWS) | |:-----------------------------|:-----------------------------------------| | Do, 15:45 - 17:15 Uhr (Zoom) | G1: Mi, 09:45 - 11:15 Uhr (Zoom) | | | G2: Mi, 11:30 - 13:00 Uhr (Zoom) | | | G3: Mi, 09:45 - 11:15 Uhr (Prsenz J101) | | | G4: Mi, 11:30 - 13:00 Uhr (Prsenz J101) |

Durchfhrung der Vorlesung als Flipped Classroom (Carsten) bzw. als regulre Vorlesung (BC). Zugangsdaten Zoom siehe ILIAS.

Fahrplan

Hier finden Sie einen abonnierbaren Google Kalender mit allen Terminen der Veranstaltung zum Einbinden in Ihre Kalender-App.

Abgabe der bungsbltter jeweils Montag bis 09:00 Uhr im ILIAS. Vorstellung der Lsung im jeweiligen Praktikum in der Abgabewoche.

| Woche | Vorlesung: Selbststudium (Vorbereitung) | Vorlesung: Gemeinsame Sitzung | Praktikum | Edmonton/Minden-Meetings | |:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------|:------------------------------------------------------------------------------------| | W01 / KW41 | berblick | Sprachen | Anwendungen | Orga (Zoom) | | | | W02 / KW42 | | Regulre Sprachen 1 | | | | W03 / KW43 | | Regulre Sprachen 2 || CFG | B01 Regulre Sprachen | | | W04 / KW44 | Lexer mit ANTLR | Parser mit ANTLR | B02 CFG | | | W05 / KW45 | | LL-Parser | B03 ANTLR | Mo, 03.11., 18:00 - 19:00 Uhr (online): Edmonton/Minden: ANTLR + Live-Coding | | W06 / KW46 | Lexer (Implementierung) | LL-Parser (Implementierung) | | | | W07 / KW47 | Symboltabellen: berblick | Scopes | Funktionen | Klassen | B04 LL hand coded | | | W08 / KW48 | AST-basierte Interpreter 1 | AST-basierte Interpreter 2 | B05 Semantische Analyse | | | W09 / KW49 | C++ I: Basics | Pointer & Referenzen | | Mo, 01.12., 18:00 - 19:00 Uhr (online): Edmonton/Minden: Minden Presentations | | W10 / KW50 | C++ II: Klassen | Big Three | Operatoren | Vererbung & Polymorphie | B06 Interpreter | Mo, 08.12., 18:00 - 19:00 Uhr (online): Edmonton/Minden: Edmonton Presentations | | W11 / KW51 | | Sprechstunde | B07 C++ | | | - / KW52 | | Weihnachtspause | | | | - / KW01 | | Weihnachtspause | | | | W12 / KW02 | | Sprechstunde | Freies Arbeiten B08 | | | W13 / KW03 | | Sprechstunde | Freies Arbeiten B08 | | | W14 / KW04 | Prfungsvorbereitung | Rckblick (Zoom) | B08 Mini-Projekt | |

Prfungsform, Note und Credits

(Digitale) Klausur plus Studienleistung, 5 ECTS

  • Studienleistung: "Portfolio"

    Kriterien je Team (3 Personen):

1.  Aktive Teilnahme an mind. zwei der drei Edmonton/Minden-Termine
2.  Mind. vier der sieben bungsbltter B01..B07 erfolgreich bearbeitet[^1]
3.  Mini-Projekt (B08) erfolgreich bearbeitet
4.  Vortrag ber Mini-Projekt (B08) am Semesterende (W14), pro Team 15 Minuten

Je Kriterium: Abgabe eines Post Mortem[^2] im ILIAS (**jede Person
individuell**)
  • Gesamtnote: (Digitale) Klausur im B40 (90 Minuten)

[^1]: "erfolgreich bearbeitet": Bearbeitung in 3er Teams, alle Aufgaben/Punkte bearbeitet, fristgerechte Abgabe des ausreichenden Post Mortems im ILIAS

[^2]: Post Mortem: Jede Person beschreibt in der ILIAS-Abgabe individuell(!) die Bearbeitung des jeweiligen Kriteriums bzw. die Teilnahme am Edmonton/Minden-Meeting zurckblickend mit mind. 200 bis max. 400 Wrtern (Nutzlast; berschriften und Links zhlen nicht mit). Gehen Sie dabei aussagekrftig und nachvollziehbar auf folgende Punkte ein:

1.  Zusammenfassung: Was wurde gemacht bzw. was wurde auf dem Meeting
    besprochen?
2.  Details: Kurze Beschreibung besonders interessanter Aspekte der Umsetzung
    bzw. des Meetings.
3.  Reflexion: Was war der schwierigste Teil bei der Bearbeitung? Wie haben Sie
    dieses Problem gelst?
4.  Reflexion: Was haben Sie gelernt oder (besser) verstanden?
5.  Team: Mit wem haben Sie zusammengearbeitet?
6.  Link zu Ihrem Repo mit den relevanten Artefakten (Lsung, Slides fr den
    Vortrag, ...).

Fr die Edmonton/Minden-Meetings passen Sie bitte die Punkte (1) bis (4)
entsprechend inhaltlich an, (5) und (6) entfallen.

Siehe auch
https://github.com/Compiler-CampusMinden/CB-Vorlesung-Bachelor-W25/discussions/3.

Materialien

  1. "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.
  2. "Crafting Interpreters". Nystrom, R., Genever Benning, 2021. ISBN 978-0-9905829-3-9. Online.
  3. "The Definitive ANTLR 4 Reference". Parr, T., Pragmatic Bookshelf, 2014. ISBN 978-1-9343-5699-9. Online ber die O'Reilly-Lernplattform.
  4. "Writing a C Compiler". Sandler, N., No Starch Press, 2024. ISBN 978-1-0981-8222-9. Online ber die O'Reilly-Lernplattform.

Frderungen und Kooperationen

Kooperation mit University of Alberta, Edmonton (Kanada)

ber das Projekt "We CAN virtuOWL" der Fachhochschule Bielefeld ist im Frhjahr 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 fr beide Hochschulen anbieten zu knnen. (Diese Termine werden in englischer Sprache durchgefhrt.)


LICENSE

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.

Owner

  • Name: Compilerconstruction @ Campus Minden
  • Login: Compiler-CampusMinden
  • Kind: organization

Vorlesung Compilerbau FH Bielefeld

GitHub Events

Total
  • Issues event: 69
  • Watch event: 2
  • Delete event: 21
  • Issue comment event: 31
  • Push event: 217
  • Pull request review comment event: 17
  • Pull request review event: 14
  • Pull request event: 25
  • Fork event: 1
  • Create event: 12
Last Year
  • Issues event: 69
  • Watch event: 2
  • Delete event: 21
  • Issue comment event: 31
  • Push event: 217
  • Pull request review comment event: 17
  • Pull request review event: 14
  • Pull request event: 25
  • Fork event: 1
  • Create event: 12

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 54
  • Total pull requests: 32
  • Average time to close issues: 3 months
  • Average time to close pull requests: 4 days
  • Total issue authors: 2
  • Total pull request authors: 3
  • Average comments per issue: 0.37
  • Average comments per pull request: 0.19
  • Merged pull requests: 25
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 45
  • Pull requests: 26
  • Average time to close issues: 26 days
  • Average time to close pull requests: 3 days
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 0.27
  • Average comments per pull request: 0.23
  • Merged pull requests: 20
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • cagix (58)
  • bcg7 (1)
Pull Request Authors
  • cagix (27)
  • bcg7 (6)
  • dependabot[bot] (2)
Top Labels
Issue Labels
vorlesungen (31) aufgaben (25) high prio (25) orga (11) prüfungen (7) tooling (4) bug (4) w23 (2) later (2)
Pull Request Labels
aufgaben (17) vorlesungen (13) orga (5) high prio (4) dependencies (2) prüfungen (2) tooling (2) bug (2) github_actions (1) w23 (1)

Dependencies

.github/workflows/hugo.yaml actions
  • ./.github/actions/alpine-pandoc-hugo * composite
  • actions/checkout v3 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/slides.yaml actions
  • ./.github/actions/alpine-pandoc-hugo * composite
  • actions/checkout v3 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/tests.yaml actions
  • actions/checkout v4 composite
  • cagix/pandoc-lecture master composite
lecture/frontend/parsing/src/docker/Dockerfile docker
  • openjdk 11 build
lecture/frontend/semantics/symboltables/src/docker/Dockerfile docker
  • openjdk 11 build