Ich bin daran interessiert, einen sehr minimalistischen Compiler zu schreiben.
Ich möchte ein kleines Stück Software (in C/C++) schreiben, das die folgenden Kriterien erfüllt:
- Ausgabe im ELF-Format (*nix)
- Eingabe ist eine einzelne Textdatei
- C-ähnliche Grammatik und Syntax
- kein Linker
- kein Präprozessor
- sehr klein (max. 1-2 KLOC)
Sprachliche Merkmale:
- native Datentypen: char, int und Floats
- Arrays (für alle nativen Datentypen)
- Variablen
- Kontrollstrukturen (if-else)
- Funktionen
- Schleifen (wäre schön)
- einfache Algebra (div, add, sub, mul, boolesche Ausdrücke, bit-shift, usw.)
- inline asm (für Systemaufrufe)
Kann mir jemand sagen, wie ich anfangen soll? Ich weiß nicht, aus welchen Teilen ein Compiler besteht (zumindest nicht in dem Sinne, dass ich einfach von der Stange anfangen könnte) und wie man sie programmiert. Ich danke Ihnen für Ihre Ideen.