Dieses Lern- und Referenzprojekt richtet sich ab dem ersten Ausbildungsjahr an
Fachinformatiker*innen, Kaufleute für IT-System-Management und Kaufleute für
Digitalisierungsmanagement. Inhalte stehen auf Deutsch zuerst und Englisch
danach, verwenden ungefähr CEFR B2, erklären Fachbegriffe beim ersten Auftreten
und setzen keine Spec-Kit-Erfahrung voraus. Abhängigkeiten, Zustände und
Entscheidungen bleiben ohne ausschließlich visuelle Darstellung verständlich.
Programmierung #include<everyone> und WCAG 2.2 Level AA sind die Prüfbasis,
soweit die Kriterien anwendbar sind.
This learning and reference project targets IT specialist apprentices and both
IT management occupations from their first training year. Content is
German-first/English-second at about CEFR B2, explains technical terms at first
use, assumes no prior Spec Kit experience, and never relies on visual-only
dependency, state, or decision information. Programmierung #include<everyone>
and WCAG 2.2 Level AA are the review baseline wherever applicable.
Dieses Projekt ist auf die Fachinformatiker-Ausbildung in Deutschland ausgerichtet. Lernrelevante Dokumentation und Kommentare werden zweisprachig gepflegt: zuerst Deutsch, danach Englisch. Beide Textblöcke sollen ein gut verständliches Sprachniveau B2 (GER/CEFR) einhalten, damit auch nicht-muttersprachliche Auszubildende alle Inhalte sicher nachvollziehen können.
This project targets vocational IT training (Fachinformatiker) in Germany. Learner-facing documentation and comments are maintained bilingually: German first, English second. Both language blocks are expected to follow B2 (CEFR/GER) readability so non-native trainees can fully understand compiler construction concepts and project workflows.
Dieses Repository dient der Portierung des historischen PL/0-Beispielcompilers (Pascal) nach C# auf .NET 10.
Die fachliche und technische Zieldefinition steht im Pflichtenheft:
Lizenz: MIT - siehe LICENSE.
Die Portierung orientiert sich an zwei klaren Dialekten:
classic
- Kompatibel zum vorliegenden Pascal-Referenzcode.
- Fokus auf historische Semantik und VM-Verhalten.
extended
- Konsolidierte EBNF inkl.
? ident(Input) und! expression(Output) auf Basis der ANTLR-PL/0-Grammatik.
Referenzquellen im Repository:
- Datentyp: nur
integer. - Prozeduren sind unterstützt, Parameter/Funktionsrückgaben nicht.
- Dialekte:
classic: ohne?/!.extended: mit Eingabe? identund Ausgabe! expression.
- Architekturdiagramm und Pascal->C# Mapping:
docs/ARCHITECTURE.md
- Sprachumfang/EBNF:
docs/LANGUAGE_EBNF.md
- VM-Befehlssatz:
docs/VM_INSTRUCTION_SET.md
- Traceability-Matrix (Regel -> Pflichttests):
docs/TRACEABILITY_MATRIX.md
- Qualitäts- und Coverage-Übersicht:
docs/QUALITY.md
- Veröffentlichtes DocFX-Handbuch über GitHub Pages:
https://hindermath.github.io/TinyPl0/
Fuer src/Pl0.Ide gilt die vierteilige Version Major.Minor.Patch.Build mit folgender Bedeutung:
Minor: aktuelle PR-NummerPatch: Anzahl Commits im aktuellen PR-BranchBuild: manueller Buildzaehler (vor jedemdotnet build/dotnet testerhoehen)
Die .NET-10-Solution ist angelegt:
TinyPl0.slnsrc/Pl0.Coresrc/Pl0.Vmsrc/Pl0.Clisrc/Pl0.Idetests/Pl0.Tests
Zusätzlich sind umgesetzt:
CliOptionsParserfür die Pascal-kompatiblen Compiler-Switches.- Ein erster Lexer (
Pl0Lexer) mit Zeilen-/Spalten-Tracking. - Parser + Symboltabelle + Codegenerator (
Pl0Parser/Pl0Compiler). - VM/Interpreter (
VirtualMachine) inklusive Stack-Maschine und I/O-Adapter (ConsolePl0Io,BufferedPl0Io). - CLI-Subcommands:
compile,run,run-pcode(inkl.--out,--list-code,--emit). - P-Code Serialisierung/Deserialisierung (
PCodeSerializer) für Datei-Workflow. - End-to-End-Tests für
source -> pcode -> vmintests. - Terminal-GUI-IDE (
Pl0.Ide) mit Quellcode-Editor, Kompilieren/Ausführen, Export (asm/cod) und Schritt-Debugging überSteppableVirtualMachine. - Vollständiger 8.2-Testdatenkatalog (41 Pflicht-
.pl0-Fälle) inkl. erwarteter Artefakte:tests/data/expected/catalog/cases.json
Voraussetzung: FreePascal (fpc) oder Delphi-kompatibler Compiler.
Beispiel:
fpc pl0c.pas
./pl0cdotnet restore
dotnet build
dotnet test# Kompilieren nach .pcode
dotnet run --project src/Pl0.Cli -- compile tests/data/pl0/valid/feature_const_var_assignment.pl0 --out /tmp/example.pcode# PL/0 Quelltext direkt ausführen
dotnet run --project src/Pl0.Cli -- run tests/data/pl0/valid/feature_io_q_bang_relops.pl0# Vorhandene .pcode Datei ausführen
dotnet run --project src/Pl0.Cli -- run-pcode tests/data/expected/code/feature_io_q_bang_relops.pcode.txt# Code-Liste ausgeben (didaktisch)
dotnet run --project src/Pl0.Cli -- run tests/data/pl0/valid/feature_const_var_assignment.pl0 --list-code --wopcoddotnet run --project src/Pl0.Ide- Git-Repository ist initialisiert.
.gitignorefür .NET/C#/Visual Studio/JetBrains ist vorhanden.- Core/VM/CLI sind inklusive End-to-End-Workflow (
source -> pcode -> vm) umgesetzt. Pl0.Ideist als eigenes Projekt in die Solution integriert und durch Tests abgesichert.- Qualitäts- und Architekturprüfungen laufen über die Test-Suite (
ArchitectureGuardTests, Traceability-/Golden-/E2E-Tests).
- Der Branch
mainist geschützt; direkte Commits/Pushes aufmainsind nicht erlaubt. - Für jede Änderung zuerst einen neuen, sauberen Arbeits-Branch erstellen.
- Änderungen ausschließlich per Pull Request nach
mainintegrieren.
Dieses Projekt entstand mit starker Unterstützung durch Agentic-AI-Technologien. Die Verwendung von KI-Agenten spielte eine zentrale Rolle bei:
- Architektur & Design: Automatisierte Analyse von Anforderungen und Ableitung der Systemarchitektur.
- Code-Generierung: Unterstützung bei der Implementierung von Lexer, Parser, Compiler und VM.
- Testing & Validierung: Systematische Generierung von Testfällen und Überprüfung der Compliance.
- Dokumentation: Automatisierte Erstellung von API-Dokumentation, Handbüchern und Architekturdokumentation.
- Qualitätssicherung: Statische Codeanalyse, Fehlerdetection und Optimierungsvorschläge.
Neben der praktischen Implementierung eines Compilers dient dieses Projekt auch als Fallstudie zur Untersuchung, wie Agentic-AI sinnvoll in der Fachinformatiker-Ausbildung eingesetzt werden kann:
- Pädagogischer Mehrwert: Wie können AI-Agenten Auszubildende beim Erlernen komplexer Compilerbau-Konzepte unterstützen?
- Produktivität: Wie beschleunigt die Zusammenarbeit mit AI-Agenten die Entwicklung, ohne die Lerneffekte zu schmälern?
- Qualität: Wie trägt Agentic-AI zu besserer Code-Qualität, Dokumentation und Testabdeckung bei?
- Transparenz: Wie bleibt die Nachvollziehbarkeit und Validierbarkeit der generierten Artefakte gewährleistet?
Dieses Projekt zeigt, dass Agentic-AI nicht als Ersatz für manuelles Lernen gedacht ist, sondern als produktive Werkzeug und Lernpartner für professionelle Softwareentwicklung in der Ausbildung.
Das registrierte Standardprofil dieser Workspace-Familie umfasst auf Level 0, Level 1 und Level 2 alle acht Governance-Presets. Eine Teilmenge ist nur als begründete, dokumentierte Projektausnahme zulässig.
Standard-Preset-Set:
security-governancev0.6.1, Priority 10architecture-governancev0.5.1, Priority 20isaqb-architecture-governancev0.2.1, Priority 30a11y-governancev0.4.1, Priority 40cross-platform-governancev0.2.1, Priority 50agent-parity-governancev0.4.0, Priority 60autonomous-run-governancev0.3.0, Priority 70parallel-autonomous-run-governancev0.2.1, Priority 80
Die ursprünglichen sechs Presets sind seit 2026-05-04 im github/spec-kit
Community-Katalog enthalten; autonomous-run-governance v0.2.2 wurde dort am
2026-07-17 verifiziert. parallel-autonomous-run-governance v0.2.1 wurde mit
github/spec-kit#3591 für den Katalog eingereicht. Installation startet keinen
autonomen oder parallelen Lauf und erteilt keine zusätzlichen Rechte.
Alle acht Presets erzeugen oder verlangen audit-ready Spec-Kit-Run-Evidenz mit
Applicable / N/A / Open, Begründung, Evidenzpfad, Reviewer, Restrisiko und
Follow-up. Die Feldtesterkenntnisse ergänzen exakte Head-/Review-/Check-Gates,
fortsetzbare Closeouts, barrierearme Statusausgabe und geheimnisfreie,
agentenneutrale Runner-Metadaten.
Nach Installation oder Update prüfen:
bash scripts/install-spec-kit-governance-presets.sh --check-only --repo .
specify preset list
specify preset info security-governance
specify preset resolve constitution-template.mdWenn Presets Projekt-Policy sind, .specify/presets/ und erzeugte
Agenten-/Command-Dateien committen; .specify/presets/.cache/ nicht committen.
The registered standard profile for this workspace family includes all eight
governance presets at level 0, level 1, and level 2. A subset requires a
justified, documented project exception. Installation starts no autonomous or
parallel run and grants no additional authority. Verify the exact matrix with
install-spec-kit-governance-presets.* --check-only / -CheckOnly, then use
specify preset list, info, and resolve as applicable. Commit
.specify/presets/ and generated agent/command files when presets are project
policy; do not commit .specify/presets/.cache/.
- Folge dem Leitsatz
Programmierung #include<everyone>: Lernmaterialien, Guides und erzeugte HTML-/API-Dokumentation muessen fuer Braille-Zeile, Screenreader und Textbrowser nutzbar bleiben. - Follow
Programmierung #include<everyone>: learner-facing material, guides, and generated HTML/API documentation must stay usable on Braille displays, with screen readers, and in text browsers. - Fuer erzeugte HTML-Dokumentation gilt WCAG 2.2 Konformitaetsstufe AA als praktische Basis.
- For generated HTML documentation, WCAG 2.2 conformance level AA is the practical baseline.
- Nach jedem
docfx-Neubau soll ein textorientierter A11y-Review folgen, bevorzugt mit Playwright +@axe-core/playwrightundlynx. - After every
docfxregeneration, a text-oriented accessibility review should follow, preferably with Playwright +@axe-core/playwrightandlynx. - Fuer lokale DocFX-A11y-Pruefpfade sollen
Node 24 LTS,npm, Playwright,@axe-core/playwrightundlynxals gepflegte Voraussetzung verfuegbar sein. - For local DocFX accessibility review paths, keep
Node 24 LTS,npm, Playwright,@axe-core/playwright, andlynxavailable as maintained prerequisites.
Neue Features in diesem Workspace werden nach dem Specification-Driven Development (SDD)-Workflow entwickelt.
Der Workflow verwendet das speckit-CLI-Tool (GitHub Copilot Skill).
Schritte für ein neues Feature:
- Spezifikation erstellen —
speckit specify "Feature-Name"→specs/{branch}/spec.md - Klärungsfragen —
speckit clarify→ offene Fragen inspec.mdbeantworten - Implementierungsplan —
speckit plan→specs/{branch}/plan.md - Aufgabenliste —
speckit tasks→specs/{branch}/tasks.md - Implementieren —
speckit implement→ Aufgaben austasks.mdabarbeiten - Validieren —
bash scripts/check-homogeneity.sh→ Compliance-Score prüfen
Alle Spec-Artefakte werden im Branch-Verzeichnis specs/{branch}/ gespeichert und versioniert.
New features in this workspace are developed following the Specification-Driven Development (SDD) workflow.
The workflow uses the speckit CLI tool (GitHub Copilot Skill).
Steps for a new feature:
- Create specification —
speckit specify "Feature Name"→specs/{branch}/spec.md - Clarification questions —
speckit clarify→ answer open questions inspec.md - Implementation plan —
speckit plan→specs/{branch}/plan.md - Task list —
speckit tasks→specs/{branch}/tasks.md - Implement —
speckit implement→ work through tasks intasks.md - Validate —
bash scripts/check-homogeneity.sh→ check compliance score
All spec artefacts are stored and versioned in the branch directory specs/{branch}/.
Prüft dieses Projekt auf Compliance (constitution.md, A11Y, Spec-kit, Azubis-Abschnitte, STATS.md). Checks this project for compliance (constitution.md, A11Y, Spec-kit, Azubis sections, STATS.md).
bash scripts/check-homogeneity.sh
# JSON-Ausgabe für CI/Scripting / JSON output for CI/scripting
bash scripts/check-homogeneity.sh --jsonpwsh scripts/check-homogeneity.ps1
pwsh scripts/check-homogeneity.ps1 -JsonSchreibt einen Baseline-Eintrag in STATS.md. Einmalig nach dem Einrichten ausführen.
Writes a baseline entry to STATS.md. Run once after initial setup.
bash scripts/init-stats.shpwsh scripts/init-stats.ps1Benennt eine Lastenheft-Datei via git mv um und committet — fügt Branch-Suffix hinzu.
Renames a Lastenheft file via git mv and commits — adds branch suffix.
# Datei umbenennen und committen / Rename and commit
bash scripts/rename-lastenheft.sh Lastenheft_foo.md 002-feature-branch
# Ergebnis / Result: Lastenheft_foo.002-feature-branch.mdpwsh scripts/rename-lastenheft.ps1 -File Lastenheft_foo.md -Branch 002-feature-branchInstalliert den pre-push-Hook nach dem Clonen auf einem neuen Gerät.
Installs the pre-push hook after cloning on a new device.
bash scripts/install-hooks.shpwsh scripts/install-hooks.ps1Willkommen! Diese Sektion beschreibt den Einstieg in die Entwicklungsumgebung für Fachinformatiker-Azubis und andere Einsteiger.
Voraussetzungen:
- Git (macOS:
brew install git/ Windows:winget install Git.Git) - PowerShell 7+ (Windows:
winget install Microsoft.PowerShell) - ripgrep (macOS:
brew install ripgrep/ Windows:winget install BurntSushi.ripgrep.MSVC) - GitHub CLI (macOS:
brew install gh/ Windows:winget install GitHub.cli)
Ersten Schritt ausführen:
# Repository klonen
git clone <repo-url>
cd <projekt-verzeichnis>
# Hooks installieren
bash scripts/install-hooks.sh
# Compliance prüfen
bash scripts/check-homogeneity.shHilfreiche Befehle:
| Befehl | Beschreibung |
|---|---|
bash scripts/check-homogeneity.sh |
Compliance-Bericht anzeigen |
bash scripts/init-stats.sh |
Compliance-Baseline in STATS.md schreiben |
git log --oneline -10 |
Letzte 10 Commits anzeigen |
Bei Fragen: Issue im GitHub-Repository erstellen oder Mentor ansprechen.
Welcome! This section describes how to get started with the development environment for apprentice software developers (Fachinformatiker-Azubis) and other beginners.
Prerequisites:
- Git (macOS:
brew install git/ Windows:winget install Git.Git) - PowerShell 7+ (Windows:
winget install Microsoft.PowerShell) - ripgrep (macOS:
brew install ripgrep/ Windows:winget install BurntSushi.ripgrep.MSVC) - GitHub CLI (macOS:
brew install gh/ Windows:winget install GitHub.cli)
First steps:
# Clone the repository
git clone <repo-url>
cd <project-directory>
# Install hooks
bash scripts/install-hooks.sh
# Check compliance
bash scripts/check-homogeneity.shUseful commands:
| Command | Description |
|---|---|
bash scripts/check-homogeneity.sh |
Show compliance report |
bash scripts/init-stats.sh |
Write compliance baseline to STATS.md |
git log --oneline -10 |
Show last 10 commits |
For questions: open an issue in the GitHub repository or ask your mentor.
Die lebende Projektstatistik steht in docs/project-statistics.md. Sie wird reproduzierbar aus docs/project-statistics.config.json mit scripts/render-project-statistics.sh oder scripts/render-project-statistics.ps1 erzeugt. Alle Diagramme sind ASCII-only, hoechstens 100 Zeichen breit und durch genaue Werte sowie eine deutsche und englische Textalternative ergaenzt.
The living project statistics are stored in docs/project-statistics.md. They are rendered reproducibly from docs/project-statistics.config.json with the Bash or PowerShell renderer. Every chart is ASCII-only, at most 100 characters wide, and accompanied by exact values plus German and English text alternatives.