2
有沒有辦法改變HERE
指向什麼或者其他方式來確保我編譯的下一個定義最終會在某個特定位置?或者,我可以將定義複製到別的地方嗎?理想情況下,我希望在ANS Forth中有一個解決方案,但Gforth特有的東西足夠好。如何控制編譯新的Forth單詞的位置?
有沒有辦法改變HERE
指向什麼或者其他方式來確保我編譯的下一個定義最終會在某個特定位置?或者,我可以將定義複製到別的地方嗎?理想情況下,我希望在ANS Forth中有一個解決方案,但Gforth特有的東西足夠好。如何控制編譯新的Forth單詞的位置?
您可以使用ALLOT移動數據空間指針在兩個方向:
: here! (a --) here - allot ;
至於gforth,這個簡單的版本應該工作:
: here! dp ! ;
話雖如此,HERE不一定要編譯新單詞的地方。這裏指向數據空間,而定義則寫入命名空間和代碼空間。然而,在像Gforth這樣的傳統設計中,三者是一個連續的區域。見DPANS94 3.3。
dp或多或少是我正在尋找的。我應該如何去尋找這樣的事情? – 2014-09-11 01:19:10
閱讀Forth源代碼(實現和應用程序),Forth雜誌(存檔),互聯網討論(comp.lang.forth)的大量內容。 – 2014-09-11 05:53:54
所以沒有gforth專用詞彙的詞彙表? – 2014-09-14 18:30:00