CPL-Vorlesung-Master
Lecture "Concepts of Programming Languages" (M.Sc.)
https://github.com/Compiler-CampusMinden/CPL-Vorlesung-Master
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found 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 (3.9%) to scientific vocabulary
Keywords
Repository
Lecture "Concepts of Programming Languages" (M.Sc.)
Basic Info
- Host: GitHub
- Owner: Compiler-CampusMinden
- License: cc-by-sa-4.0
- Language: TeX
- Default Branch: master
- Homepage: https://github.com/Compiler-CampusMinden/CPL-Vorlesung-Master/blob/_w25/readme.md
- Size: 32 MB
Statistics
- Stars: 8
- Watchers: 4
- Forks: 2
- Open Issues: 45
- Releases: 0
Topics
Metadata Files
readme.md
haslicense: true nobeamer: true
title: "MIF 1.5: Concepts of Programming Languages (Winter 2025/26)"
{width="80%"}
Kursbeschreibung
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.
Überblick Modulinhalte
- Lexikalische Analyse: Scanner/Lexer
- Reguläre Sprachen
- Klassisches Vorgehen: RegExp nach NFA (Thompson's Construction), NFA nach DFA (Subset Construction), DFA nach Minimal DFA (Hopcroft's Algorithm)
- Manuelle Implementierung, Generierung mit ANTLR oder Flex
- Syntaxanalyse: Parser
- Kontextfreie Grammatiken (CFG), Chomsky
- LL-Parser (Top-Down-Parser)
- FIRST, FOLLOW
- Tabellenbasierte Verfahren, rekursiver Abstieg
- LL(1), LL(k), LL(*)
- Umgang mit Vorrang-Regeln, Assoziativität und linksrekursiven Grammatiken
- LR-Parser (Bottom-Up-Parser)
- Shift-Reduce
- LR(0), SLR(1), LR(1), LALR
- Generierung mit ANTLR oder Bison
- Semantische Analyse und Optimierungen
- Symboltabellen
- Namen und Scopes
- Typen, Klassen, Polymorphie
- Attributierte Grammatiken: L-attributed vs. R-attributed grammars
- Typen, Typ-Inferenz, Type Checking
- Datenfluss- und Kontrollfluss-Analyse
- Optimierungen: Peephole u.a.
- Symboltabellen
- Zwischencode: Intermediate Representation (IR), LLVM-IR
- Interpreter
- AST-Traversierung
- Read-Eval-Schleife
- Resolver: Beschleunigung der Interpretation
- Code-Generierung, Bytecode/VM
- Speicherlayout
- Erzeugen von Bytecode
- Ausführen in einer Virtuellen Maschine
- Garbage Collection
- Programmiersprachen: Ruby, Prolog, Haskell, Lisp und die Auswirkungen der Konzepte auf den Compiler/Interpreter und die Laufzeitumgebung
Team
- BC George
- Carsten Gips (Sprechstunde nach Vereinbarung)
Kursformat
| Vorlesung (2 SWS) | Praktikum (3 SWS) | |:-----------------------------|:-----------------------------| | Di, 14:00 - 15:30 Uhr (Zoom) | Di, 15:45 - 18:00 Uhr (Zoom) |
Durchführung der Vorlesung als Flipped Classroom (Carsten) bzw. als reguläre 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 Übungsblätter jeweils Dienstag bis 14:00 Uhr im ILIAS. Vorstellung der Lösung 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 | | Reguläre Sprachen | CFG | | | W03 / KW43 | Lexer (Implementierung) | LL-Parser | LL-Parser (Implementierung) | | | W04 / KW44 | | LR-Parser | Vorträge/Diskussion: Parsergeneratoren (ANTLR, Treesitter, Flex&Bison, ...) | | | W05 / KW45 | Symboltabellen: Überblick | Scopes | Funktionen | Klassen | Vorträge/Diskussion: LALR, PEG, Pratt, Combinators | | | W06 / KW46 | | Vorträge/Diskussion: Type Checking, Hindley-Milner | Vorträge/Diskussion: OOP (Gabbrielli & Martini, Kap. 10) | | | W07 / KW47 | Syntaxgesteuerte Interpreter | AST-basierte Interpreter 1 | AST-basierte Interpreter 2 | Vorträge/Diskussion: FP (Gabbrielli & Martini, Kap. 11) | | | W08 / KW48 | | Vorträge/Diskussion: VM & Bytecode | Vorträge/Diskussion: LP (Gabbrielli & Martini, Kap. 12) | | | W09 / KW49 | | Sprechstunde | Vorträge/Diskussion: CP (Gabbrielli & Martini, Kap. 13) | Vorträge/Diskussion: Garbage Collection | Vorträge/Diskussion: JIT | Mo, 01.12., 18:00 - 19:00 Uhr (online): Edmonton/Minden: Minden Presentations | | W10 / KW50 | | Optimierung und Datenfluss- und Kontrollflussanalyse | Meilenstein 0: Kick-Off | Mo, 08.12., 18:00 - 19:00 Uhr (online): Edmonton/Minden: Edmonton Presentations | | W11 / KW51 | | Sprechstunde | Freies Arbeiten | | | - / KW52 | | Weihnachtspause | | | | - / KW01 | | Weihnachtspause | | | | W12 / KW02 | | Sprechstunde | Meilenstein 1: DSL | | | W13 / KW03 | | Sprechstunde | Freies Arbeiten | | | W14 / KW04 | | Meilenstein 2: Vorträge | Meilenstein 2: Vorträge | |
Prüfungsform, Note und Credits
Mündliche Prüfung plus Studienleistung, 10 ECTS
Studienleistung: "Portfolio"
Kriterien je Team (2 Personen):
- Aktive Teilnahme an beiden Edmonton/Minden-Terminen
- 1x Kurzvortrag plus Diskussionsleitung "PL Features" (Gabbrielli & Martini) a 20'
- 1x Vortrag "Compiler" (Parser Generatoren, Parser, Type Checking, VM/Bytecode) a 60'
- 1x Vortrag Edmonton (20' pro Team)
- Durchführung DSL-Projekt und Einhaltung der Meilensteine
- Vortrag pro Team am Ende (W14) a 30'
Je Kriterium: Abgabe eines Post Mortem im ILIAS (jede Person individuell)
Gesamtnote: Mündliche Prüfung (einzeln, ca. 45 Minuten)
Die Bearbeitung der Aufgaben (Workshops) erfolgt in 2er Teams.
Materialien
- "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.
Förderungen und Kooperationen
Kooperation mit University of Alberta, Edmonton (Kanada)
Ü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.)
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
- Repositories: 3
- Profile: https://github.com/Compiler-CampusMinden
Vorlesung Compilerbau FH Bielefeld
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: Lecture "Concepts of Programming Languages" (M.Sc.)
message: >-
If you use this lecture material, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Carsten
family-names: Gips
email: cagix@hsbi.de
affiliation: HSBI
orcid: 'https://orcid.org/0000-0002-4230-9060'
- family-names: George
given-names: Birgit Christina
affiliation: HSBI
orcid: 'https://orcid.org/0009-0001-6148-9677'
repository-code: >-
https://github.com/Compiler-CampusMinden/CPL-Vorlesung-Master
abstract: >-
This represents the lecture material for the lecture
"Concepts of Programming Languages" (M.Sc.) (formerly
known as "Compilerbau" (M.Sc.)), a course developed and
taught at Bielefeld University of Applied Sciences.
keywords:
- compiler construction
- grammar
- antlr
- interpreter
- optimization
- compiler
- code generation
- programming languages
- oer
license: CC-BY-SA-4.0
GitHub Events
Total
- Issues event: 8
- Issue comment event: 8
- Push event: 11
Last Year
- Issues event: 8
- Issue comment event: 8
- Push event: 11
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 5
- Total pull requests: 0
- Average time to close issues: 13 days
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 0
- Average comments per issue: 1.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 5
- Pull requests: 0
- Average time to close issues: 13 days
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 0
- Average comments per issue: 1.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- cagix (5)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v3 composite
- cagix/pandoc-lecture master composite
- peaceiris/actions-gh-pages v3 composite
- actions/checkout v3 composite
- cagix/pandoc-lecture master composite
- peaceiris/actions-gh-pages v3 composite
- openjdk 11 build
- openjdk 11 build