Der Builder

So, der Builder ist fertig. Eigentlich schon seit ein paar Tagen, aber ich hatte bisher keine gute Gelegenheit, darüber zu berichten. Viel zu sagen gibt es da eigentlich auch gar nicht. Wie erwartet gab es keine Probleme. Das war ein Klacks. Ist aber auch nicht verwunderlich, schließlich muss für die Bytecode-Generierung, was ja Aufgabe des Builders ist, lediglich der zuvor erzeugte Syntaxbaum traversiert werden. Dabei wird für jeden Knoten im Baum der entsprechende Bytecode in einen Puffer geschrieben. Der Code eines einzelnen Knotens ist dabei absolut unabhängig von anderen Knoten, was die ganze Sache schön einfach hält.

Der tatsächliche Bytecode ist jetzt wahrscheinlich weniger interessant. Selbst für mich macht es wohl erst Sinn, mir den generierten Bytecode reinzuziehen, wenn ich den Interpreter baue. Daher gibt der Builder bisher einfach nur die Opcode-Kürzel der jeweiligen Instruktionen aus. Diese Debug-Ausgaben passen im vorliegenden Fall ganz wunderbar zum Syntaxbaum von letzter Woche. Das ist auch gut so, schließlich repräsentieren die Opcode-Kürzel dort links denselben Skriptcode zur Berechnung der Quadratwurzel, für den der Syntaxbaum erzeugt wurde.

Hier noch mal der beispielhafte Skriptcode:

z := 1;
while ( abs( z*z - x ) >= mu )
{
  z := z - ( z*z - x ) / 2*z;
}

Eine Antwort zu “Der Builder”

  1. cyber-e-razor.de» Blogarchiv » Ernie-Script (II/II) sagt:

    [...] definiert, dessen entscheidenden Code wir bereits bei der Vorstellung des Syntaxbaums und des Builders kennen gelernt [...]

Hinterlasse eine Antwort