Ich bin Bootstrapping eine Programmiersprache Compiler auf LLVM oben. Derzeit bin ich vor allem fertig schreiben einen Compiler für eine Teilmenge von C, die selbst-kompilierend ist. Wenn ich damit fertig bin, werde ich Bootstrap meine Sprache weg von C, Aufrechterhaltung der Selbstkompilierung, wie ich gehe.
Da der Compiler selbstkompilierend ist, muss ich alle Funktionen von C, die ich verwende, auch implementieren. Es ist also ein ständiges Abwägen: Wenn ich zu viele Funktionen verwende, muss ich mehr implementieren als ich will, aber wenn ich nicht genug Funktionen implementiere, wird es schwierig, Code zu schreiben.
Ein solches Merkmal sind die LLVM-Bindings. Die Erzeugung von LLVM-Zwischendarstellungen ohne die LLVM-C-Bindings ist schwierig. Wenn ich jedoch die LLVM-Bindings verwende, muss ich sie erneut implementieren, wenn ich von C weggehe.
Ich habe hier einige Schwierigkeiten und suche daher nach alternativen Lösungen. Irgendwelche Ideen?