Hi,
the run procedure implements a recursive interpreter. It treats every
primitive as a macro, so the primitive must itself invoke the
interpreter (run) if and when necessary. So, it is essentially the
same algorithm as the one you refer to. However, for efficiency
reasons, we keep the code that implements each primitive within the
run procedure. Also, instead of passing expressions via the stack, we
make use of an external variable which constantly points to the
expression that run needs to evaluate. The pointer is updated at the
beginning of the run procedure, so that when run is invoked again
(recursively) it knows where the expression that it needs to interpret
is located.
I hope this helps.
Riccardo
> > > Lyani- Hide quoted text -
>
> - Show quoted text -