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

Repo: flatten folder structures #262

Merged
merged 5 commits into from
Aug 22, 2024
Merged

Repo: flatten folder structures #262

merged 5 commits into from
Aug 22, 2024

Conversation

cagix
Copy link
Member

@cagix cagix commented Aug 22, 2024

Die Ordnerstrukturen übersetzen sich in die Strukturen des generierten Menüs des Skripts. Da die Studierenden sich mehrfach über die Tiefe der Verlinkung beschwert hatten, soll mit diesem PR die Ordnerstruktur auf eine Hauptebene reduziert werden: Die einzelnen Phasen/Bausteine der Compiler-Pipeline bekommen einen eigenen Ordner, darunter kommen direkt die Inhalte.

Damit die Ordner auch in der GH-Preview in der richtigen Reihenfolge auftauchen, erfolgt zusätzlich eine Nummerierung der Ordner.

Was hältst Du von folgender Top-Level-Ordner-Struktur für CB/CPL:

  • Intro
  • Lexing
  • Parsing
  • Semantics (-> Attributierte Grammatiken, Symboltabellen, Typ-Inferenz)
  • Interpretation (-> AST-basierte Interpreter, VM)
  • Code Generation (-> Bytecode, Assembler, ...)
  • Optimisation (-> lokal, global, JIT)
  • Memory Management (-> Runtime)

Das ist ungefähr die Struktur aus dem "Modern Compiler Design" von Dick Grune.

Ich überlege, ob ein zusätzlicher Ordner für "Intermediate Representation" sinnvoll wäre? Dafür spräche, dass Dinge wie AST, SSA, LLVM-IR, MLIR, ... ein gemeinsames Zuhause bekommen würden. Dagegen spricht (leicht), dass die anderen Ordner "Phasen" sind (also eigentlich Verben), während der Zwischencode ein "Zustand" ist (also eigentlich ein Substantiv). Was denkst Du?

Eine andere Überlegung ist, den Ordnern eine Nummer voranzustellen ("00-intro"). Damit wären sie auch im GitHub in der Preview vernünftig sortiert. Allerdings bedeutet das auch, dass wir bei späterem Hinzufügen neuer Ordner dann immer die folgenden Ordner umbenennen müssen. Wie siehst Du das?

@cagix cagix added tooling Tooling (Pandoc, Hugo, Docker, Github) vorlesungen labels Aug 22, 2024
@cagix cagix added this to the Start Winter 2024/25 milestone Aug 22, 2024
@cagix cagix self-assigned this Aug 22, 2024
@cagix cagix requested a review from bcg7 as a code owner August 22, 2024 09:21
@cagix cagix merged commit ad27ed5 into master Aug 22, 2024
2 checks passed
@cagix cagix deleted the structures branch August 22, 2024 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tooling Tooling (Pandoc, Hugo, Docker, Github) vorlesungen
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant