OpenBoot 3.x コマンド・リファレンスマニュアル

利用者定義の作成

Forth は、既存ワードの処理から新しいコマンドワードを作成するための簡単な手段を提供します。表 4-4 に、利用者定義作成用の Forth ワードを示します。

表 4-4 コロン定義ワード

コマンド 

スタックダイアグラム 

説明 

: new-name

( -- ) 

ワード new-name の新しいコロン定義を開始します。

;  

( -- ) 

コロン定義を終了します。 

新しいコマンドの定義は、: を用いて定義することから、コロン定義と呼ばれます。たとえば、任意の 4 つの数値を加算し、結果を表示する新しいワード add4 を作成します。定義は、たとえば次のように作成できます。


ok : add4  + + + .  ;
ok 

;(セミコロン) は、(+ + + .) の操作を行う add4 の定義する定義の終わりを示します。3 つの加算演算子 (+) は 4 つのスタック項目を 1 つの和に変えてスタックに残します。次に . はその結果を削除し、表示します。次に例を示します。


ok 1 2 3 3 + + + .
9
ok 1 2 3 3 add4
9
ok 

これらの定義はシステムをリセットすると消去されます。よく使う定義を保存するには、それらをスクリプトにする、つまりテキストファイルにして、ホストシステムにそれらの定義を保存します。このテキストファイルは、以降、必要に応じて読み込みできます。(ファイルの読み込みについての詳細は、第 5 章「プログラムの読み込みと実行」を参照してください。)

ユーザーインタフェースから定義を入力すると : (コロン) を入力してから ; (セミコロン) を入力するまで、ok プロンプトが、] (右角括弧) プロンプトになります。たとえば、add4 の定義は次のように入力できます。


ok : add4 
]  + + + 
]  . 
]  ; 
ok 

複数行の定義に ] プロンプトを使用するのは、サン・マイクロシステムズ社の実装の特徴です。

または、次のようにも定義できます。


: add4  ( n1 n2 n3 n4 -- )
   + + +( sum )
   .   (     )
; 


注 -

「(」(左側括弧) は、それ以降「)」(右側括弧) までのテキストを無視することを意味します。ほかのすべての Forth ワードと同様に、左側括弧の右側には 1 つまたはそれ以上の空白文字が必要です。