2010年10月2日 星期六

Forth VM

看了一篇文章,討論 Forth VM 的設計:Updating the Forth Virtual Machine。在傳統的 Forth VM 中有兩個堆疊一個記憶體。這樣的設計不容易執行 C 編譯出來的程式。也不適合用做 DSP 的 VM。為此,文章中提出了對 Forth VM 的修正,多提供了以下四個 registers 用來存取記憶體:A、B、X、Y。
  • A、B:有自動加減記憶體指標的功能,適用於 DSP,也可以用做 scratch register。
  • X、Y:能對記憶體定址,可以做為 local variable 或 user variable 的指標。
閱讀過此一文章後,比對我所知的 Forth VM 設計,還必須有 TOS、IP、W。這可就用去了七個 registers。仍小於 80x86 系列的 registers 數目 8 。

特別記錄下這文章,因為我考慮以 Forth 做為我某種應用的 VM。