Station - Ein Interpreter für strukturierte MyWhile-Programme
Aufgabe des Interpreters
Aufgabe des Interpretes ist es, strukturierte MyWhile-Programme (Schritt für Schritt) auszuführen.
Die Arbeitsweise des Interpreters soll am dolgenden Beispiel-Programm verdeutlicht werden.
[ ['=', ('VAR', 'x'), [('NAT', '24')]], ['=', ('VAR', 'y'), [('NAT', '15')]], ['=', ('VAR', 'd'), ['-', ('VAR', 'x'), ('VAR', 'y')]], ['while', ['!=', ('VAR', 'd'), ('NAT', '0')], [ ['if', ['>', ('VAR', 'd'), ('NAT', '0')], [ ['=', ('VAR', 'x'), ['-', ('VAR', 'x'), ('VAR', 'y')]] ], [ ['=', ('VAR', 'y'), ['-', ('VAR', 'y'), ('VAR', 'x')]] ] ], ['=', ('VAR', 'd'), ['-', ('VAR', 'x'), ('VAR', 'y')]] ] ] ]
Der Interpreter transformiert jeweils das noch auszuführende Restprogramm und den aktuellen Variablenzustand:
Restprogramm: [ ['=', ('VAR', 'x'), [('NAT', '24')]], ... ] Variablenzustand: {}