私はThinking Forthを読み始めました。本書では、Forthカンファレンスの議事録を参照して3行のモジュールシステムを記述しています。 Here's a PDF containing a description of the module system、14ページから始まります(132は印刷されています)。この3行のForthモジュールシステムはどのように機能しますか?
ここでは、3つの定義された単語INTERNAL
,EXTERNAL
およびMODULE
を使用する方法について説明します。
モジュールは、単語INTERNALと モジュールとの間でプログラムの一部です。モジュールにローカルである である定数、変数およびルーチンの定義は、INTERNALと EXTERNALの間に書き込まれます。モジュール外で使用される定義は、EXTERNALとMODULEの間に書かれた です。 [ ルーチンのローカル変数]は、INTERNALとEXTERNALの間で定義されます。 が参照するルーチンは、EXTERNALとMODULEの間で定義されています。
そしてここでは、コードそのものです:
: INTERNAL (--> ADDR) CURRENT @ @ ;
: EXTERNAL (--> ADDR) HERE ;
: MODULE(ADDRl ADDR2 -->)PFA LFA ! ;
私はむしろフォースのいずれかの特定の実装にプログラムする方法よりも、一般的にソフトウェアを書く方法についてのアイデアを本を読んでいたので、私コードで使用されている組み込みの単語に精通していませんが、私はこのモジュールシステムについて興味があります。誰かがそれがどのように動作するか説明できますか?
最新のForthシステムでは、[modules-package by Ulrich Hoffmann](https://theforth.net/package/modules/current-view)のように、異なる単語リストにコンパイルして検索順序を変更することが考えられます/modules.fs) – fiz