Forth virtual machine
Often,
Forth implementations have a simple
virtual machine at heart, consisting of three
primitives. Those are:
- nest, also called docol
- unnest, or semi_s (;s)
- next
three
registers are used to implement the virtual machine, another one exists for passing data between words, which use the vm. These are:
different models exist to implement the forth vm, the one given here implements
indirect threaded code, or
ITC
next: (ip)+ -> w ; jmp (w)+
nest: ip -> -(rp) ; w -> ip ; next
unnest: (rp)+ -> ip ; next
other models are:
- DTC (Direct Threaded Code)
- STC (Subroutine Threaded Code)
- TTC (Token Threaded Code)
less often used are
- return threading
- string threading
- call threading