Compilerbau Projektideen in C

Aus Dokument
Version vom 30. Januar 2025, 04:51 Uhr von Thorsten (Diskussion | Beiträge) (// via Wikitext Extension for VSCode)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).

Compilerbau Projektideen in C

Anfänger

  1. Schreibe ein Programm, das eine einfache arithmetische Ausdruckssprache parst und auswertet.
  2. Implementiere einen Lexer, der eine Zeichenkette in Token zerlegt.
  3. Schreibe einen Parser, der eine Liste von Token in einen abstrakten Syntaxbaum (AST) umwandelt.
  4. Implementiere einen einfachen Interpreter, der den AST auswertet und das Ergebnis ausgibt.
  5. Schreibe ein Programm, das eine einfache logische Ausdruckssprache (AND, OR, NOT) parst und auswertet.
  6. Implementiere einen Lexer und Parser für eine einfache Programmiersprache mit Variablenzuweisungen und Ausdrücken.
  7. Schreibe ein Programm, das eine einfache Programmiersprache mit Schleifen (for, while) parst und auswertet.
  8. Implementiere einen Lexer und Parser für eine einfache Programmiersprache mit Funktionen und Funktionsaufrufen.

Fortgeschritten

  1. Schreibe einen Parser, der eine erweiterte arithmetische Ausdruckssprache mit Klammern und Operatorpräzedenz parst.
  2. Implementiere einen Codegenerator, der den AST in eine einfache Zwischensprache (Intermediate Representation, IR) umwandelt.
  3. Schreibe einen Optimierer, der einfache Optimierungen auf der IR durchführt (z.B. konstante Ausdrücke zusammenfassen).
  4. Implementiere einen Backend-Codegenerator, der die IR in Assembly-Code für eine bestimmte Architektur umwandelt.
  5. Schreibe einen Parser und Codegenerator für eine Programmiersprache mit komplexen Datentypen (Arrays, Strukturen).
  6. Implementiere einen Optimierer, der Schleifenunrolling und Inlining von Funktionen durchführt.
  7. Schreibe einen Backend-Codegenerator, der die IR in Maschinencode für verschiedene Architekturen umwandelt.
  8. Implementiere einen Debugger, der den generierten Code zur Laufzeit überwacht und Fehler diagnostiziert.

Profi

  1. Schreibe einen vollständigen Compiler für eine einfache Programmiersprache, der Quellcode in ausführbaren Maschinencode umwandelt.
  2. Implementiere fortgeschrittene Optimierungstechniken wie Registerallokation und Schleifenoptimierung.
  3. Schreibe einen JIT-Compiler (Just-In-Time), der zur Laufzeit Code generiert und ausführt.
  4. Implementiere eine Garbage Collection für die Programmiersprache, die automatisch nicht mehr benötigten Speicher freigibt.
  5. Schreibe einen Compiler für eine Programmiersprache mit objektorientierten Konzepten (Klassen, Vererbung).
  6. Implementiere fortgeschrittene Optimierungstechniken wie Common Subexpression Elimination und Dead Code Elimination.
  7. Schreibe einen JIT-Compiler, der zur Laufzeit Profiling-Daten sammelt und basierend darauf Optimierungen durchführt.
  8. Implementiere eine fortgeschrittene Garbage Collection, die verschiedene Algorithmen (Mark-and-Sweep, Generational) unterstützt.

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).