Übersetzen in eine andere Sprache [geschlossen]

Was sind die typischen Arten, wie Code transkompiliert werden kann? Momentan schreibe ich eine einfache Programmiersprache und die Art, wie sie behandelt wird, ist rekursiv. Eine Liste von Knoten wird durchgeschleift. Wenn der aktuelle Knoten ein variabler Knoten ist, wird ein @ aufgerufeemit_variable_node -Funktion, die buchstäblich Code an eine Zeichenfolge anfügt, zum Beispiel:

Der folgende Code ist pseudo-ish, ich schreibe mein Projekt in C und kompiliere nach C.

char *file_contents;

void emit_variable_node(VariableNode *var) {
    // I know += doesn't work on strings, just pretend it does.
    file_contents += var.getType();
    file_contents += " "; // a space
    file_contents += var.getName();
    // etc
}

Ich gehe auch davon aus, dass der angegebene Code semantisch analysiert wurde und korrekt ist. Die Zeichenfolge file_contents wird dann in einer temporären Datei gespeichert, die gelöscht wird, nachdem sie von einem C-Compiler kompiliert wurde.

Ist das eine schlechte Praxis oder gibt es bessere, sauberere Möglichkeiten, dies zu tun?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage