Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Weiterentwicklung des Moduls (Bachelor) #243

Open
cagix opened this issue Dec 26, 2023 · 1 comment
Open

Weiterentwicklung des Moduls (Bachelor) #243

cagix opened this issue Dec 26, 2023 · 1 comment

Comments

@cagix
Copy link
Member

cagix commented Dec 26, 2023

Das Modul wird im Winter 2024 vom 5. Semester Bachelor (Wahl) in das 3. Semester Bachelor (Pflich) rutschen.

Die Studis sind entsprechend noch früher in ihrer Entwicklung (fachlich, persönlich) und wir haben dann auch alle Studis, unabhängig vom Interesse an CB.

Aktuell gehen wir klassisch die Bausteine der Pipeline durch und betrachten pro Block ein bis mehrere Ideen/Konzepte. Im Frontend beschränken wir uns auf CFG und ANTLR, im Backend betrachten wir nur einen AST-basierten Interpreter plus einen eigenen Builder.

Das Vorgehen skaliert recht gut, i.d.R. ist ein Thema äquivalent zu einer Sitzung, man kann Themen leicht austauschen. Nachteil ist, dass man einen relativ langen theoretischen Vorlauf braucht, bis die Studis etwas praktisch umsetzen können und dass sie erst gegen Ende des Semesters eine lauffähige Pipeline in den Händen halten.

Im (Online-) Buch und Kurs Essentials of Compilation wird das anders gemacht: Nach einer kurzen initialen Phase (Parsing) wird eine einfache komplette Pipeline für Integer-Expressions aufgebaut. In der folgenden Sitzung wird diese ergänzt um Variablen, danach Funktionen, Klassen, ... Dabei werden dann die jeweils relevanten Konzepte (Semantische Analyse, Typprüfung/-inferenz, Optimierung, Registerzuweisung, Garbage Collection, ...) schrittweise in den jeweiligen Lektionen untergebracht. (Video ACM SIGPLAN / ICFP'23)

Dadurch hat man einen angenehmen Hands-on-Ansatz und jede Woche einen lauffähigen Interpreter/Compiler in der Hand und erweitert die Konzepte quer über die Compiler-Pipeline. Zusätzlich kommen hier Aspekte verschiedener Programmierparadigmen mit rein.

Ein weiterer interessanter Aspekt: Welche Sprache wollen wir parsen/interpretieren/kompilieren, und in welcher (Implementierung s-) Sprache soll es umgesetzt werden?

Auch interessant: CSE 40243 - Compilers and Language Design mit Online-Buch

Siehe auch Compiler-CampusMinden/CB-Vorlesung-Master#154

@cagix
Copy link
Member Author

cagix commented Dec 26, 2023

@bcg7 Was hältst Du davon? Ich glaube, das wäre in erster Näherung nur eine Art Umstrukturieren unseres Materials.

@cagix cagix pinned this issue Dec 27, 2023
@cagix cagix added this to the Start Winter 2024/25 milestone Jul 11, 2024
@cagix cagix self-assigned this Jul 11, 2024
@cagix cagix removed this from the Start Winter 2024/25 milestone Aug 22, 2024
@cagix cagix removed their assignment Oct 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant