Compilerbau Projektideen in C
Zur Navigation springen
Zur Suche springen
Compilerbau Projektideen in C
Anfänger
- Schreibe ein Programm, das eine einfache arithmetische Ausdruckssprache parst und auswertet.
- Implementiere einen Lexer, der eine Zeichenkette in Token zerlegt.
- Schreibe einen Parser, der eine Liste von Token in einen abstrakten Syntaxbaum (AST) umwandelt.
- Implementiere einen einfachen Interpreter, der den AST auswertet und das Ergebnis ausgibt.
- Schreibe ein Programm, das eine einfache logische Ausdruckssprache (AND, OR, NOT) parst und auswertet.
- Implementiere einen Lexer und Parser für eine einfache Programmiersprache mit Variablenzuweisungen und Ausdrücken.
- Schreibe ein Programm, das eine einfache Programmiersprache mit Schleifen (for, while) parst und auswertet.
- Implementiere einen Lexer und Parser für eine einfache Programmiersprache mit Funktionen und Funktionsaufrufen.
Fortgeschritten
- Schreibe einen Parser, der eine erweiterte arithmetische Ausdruckssprache mit Klammern und Operatorpräzedenz parst.
- Implementiere einen Codegenerator, der den AST in eine einfache Zwischensprache (Intermediate Representation, IR) umwandelt.
- Schreibe einen Optimierer, der einfache Optimierungen auf der IR durchführt (z.B. konstante Ausdrücke zusammenfassen).
- Implementiere einen Backend-Codegenerator, der die IR in Assembly-Code für eine bestimmte Architektur umwandelt.
- Schreibe einen Parser und Codegenerator für eine Programmiersprache mit komplexen Datentypen (Arrays, Strukturen).
- Implementiere einen Optimierer, der Schleifenunrolling und Inlining von Funktionen durchführt.
- Schreibe einen Backend-Codegenerator, der die IR in Maschinencode für verschiedene Architekturen umwandelt.
- Implementiere einen Debugger, der den generierten Code zur Laufzeit überwacht und Fehler diagnostiziert.
Profi
- Schreibe einen vollständigen Compiler für eine einfache Programmiersprache, der Quellcode in ausführbaren Maschinencode umwandelt.
- Implementiere fortgeschrittene Optimierungstechniken wie Registerallokation und Schleifenoptimierung.
- Schreibe einen JIT-Compiler (Just-In-Time), der zur Laufzeit Code generiert und ausführt.
- Implementiere eine Garbage Collection für die Programmiersprache, die automatisch nicht mehr benötigten Speicher freigibt.
- Schreibe einen Compiler für eine Programmiersprache mit objektorientierten Konzepten (Klassen, Vererbung).
- Implementiere fortgeschrittene Optimierungstechniken wie Common Subexpression Elimination und Dead Code Elimination.
- Schreibe einen JIT-Compiler, der zur Laufzeit Profiling-Daten sammelt und basierend darauf Optimierungen durchführt.
- Implementiere eine fortgeschrittene Garbage Collection, die verschiedene Algorithmen (Mark-and-Sweep, Generational) unterstützt.