Konstantenfaltung und tote Codeentfernung für eine Lehrcompiler-Pipeline
Übersicht
Worum es bei diesem Projekt geht.
Du erhältst eine bestehende Compiler-Pipeline in Python (Lexer, Parser, AST-Builder), eine Zwischenrepräsentation in Drei-Adress-Code (Three-Address Code — IR-Form, in der jede Anweisung höchstens drei Operanden hat) und eine Benchmark-Suite aus 12 kleinen Programmen. Implementiere Konstantenfaltung auf AST-Ebene und Dead Code Elimination auf IR-Ebene. Miss für jedes Benchmark die Anzahl IR-Anweisungen vor und nach Optimierung sowie die simulierte Ausführungszeit auf dem mitgelieferten RISC-V-Simulator. Liefere die Optimierungspässe als sauber getrennte Module, eine Vergleichstabelle und einen 3-seitigen Bericht über die beobachteten Effekte und ihre Grenzen.
Das Briefing
Was Du tust und was Du zeigst.
Wie groß ist der messbare Effekt von Konstantenfaltung und Dead Code Elimination auf einer realistischen Benchmark-Suite, und wo stoßen diese klassischen Optimierungen an Grenzen?
Earning criteria — what you'll demonstrate
- AST-basierte Optimierungen von IR-basierten Optimierungen unterscheiden und korrekt einordnen
- Konstantenfaltung mit Berücksichtigung von Typ und Überlauf korrekt implementieren
- Erreichbarkeitsanalyse und Liveness als Grundlage für Dead Code Elimination nutzen
- Optimierungseffekte empirisch und nicht nur theoretisch belegen
Studienpassung
Wo dies in Dein Studium passt.
Schärft dieselben Fähigkeiten, die Dein Studium von Dir erwartet.
Fähigkeiten
Fähigkeiten, die Du unter Beweis stellst.
Jede taucht auf Deinem verifizierten Zertifikat auf.
Karrieren
Berufe, auf die dies Dich vorbereitet.
Echte Berufsbezeichnungen. Echte Skill-Brücken. Wähle die, die Deinem Werdegang am nächsten kommt.
Karrierewege, die das aufbaut
Kanonische RollenNoch eine Sache