Thu Jul 24 21:15:39 EDT 2014
Direct threaded forth in dtc.rkt
So there seems to be some working code. The interpreter is a
combination of direct threading with next implemented as subroutine
return into an explicit interpreter loop. This allows primitives to
be reused easily from staapl code.
So how to compile threaded code? Straightforward as:
' _word compile
but what about things like _if ?
this can still be done with labels from staapl.
dtc.rkt has a problem: that compile will compile a jump to _word, not
an address. how to convert a macro to a target value?
i believe there is a path from macro -> (cw word) -> word..
maybe define an "uncall" word?
This is can use the existing word>m macro.
So after tinkering a bit i got stuck. Probably time to run it in the
simulator again and see where it goes wrong. Requires implementation
of table read stuff.