我已經開始閱讀Thinking Forth。在這本書中,作者提到了一個三行模塊系統,並參考了Forth會議的會議記錄。從第14頁開始的Here's a PDF containing a description of the module system,(打印132)。這三行Forth模塊系統是如何工作的?
下面是如何使用三個定義的詞INTERNAL
,EXTERNAL
和MODULE
的說明。
模塊是單詞INTERNAL和 MODULE之間的程序的一部分。常量,變量和例程的定義是模塊本地的 寫在INTERNAL和EXTERNAL之間。在模塊外部使用的定義是在外部和模塊之間寫入的 。 [局部變量 例程]在INTERNAL和EXTERNAL之間定義。 引用它們的例程在EXTERNAL和MODULE之間定義。
而這裏的代碼本身:
: INTERNAL (--> ADDR) CURRENT @ @ ;
: EXTERNAL (--> ADDR) HERE ;
: MODULE(ADDRl ADDR2 -->)PFA LFA ! ;
我在讀這本書的有關如何在一般的寫軟件的想法,而不是如何在任何特定的實現的第四方案,所以我我不熟悉代碼中使用的內置單詞,但我對這個模塊系統很好奇。有人可以解釋它的工作原理嗎?
在現代的Forth系統中,一種可能的方法是編譯成不同的單詞列表並相應地改變搜索順序,如[Ulrich Hoffmann的模塊包](https://theforth.net/package/modules/current-view /modules.fs) – fiz