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