Mon May 14 18:13:28 EDT 2012
Executing a word by pushing it's instructions on the return stack.
Why do I need it? This way I don't need to implement code threading,
just loading literals on a stack.
What does this require? A union type that represents both primitives
Probably, sequences need to be abstracted.
No, what this changes is explicit "exit", where "exit" re-loads the
Basically I have this idea in my head that the return stack is really
just the continuation, which represents an infinite list of
instructions (that might be non-deterministic, i.e. it branches). The
return stack is then a "cache" for the head of this list.
So, instead of using an instruction pointer, what actually happens is
that the last *PRIMITIVE* instruction on the RS will re-populate RS:
code can only be executed from RS, but can reside anywhere, abstracted
by the particular code representation.