定義ワード synonym を使用すると、 他のワードと同一の振る舞いをするワードを名前で定義できます。 これが役立つ 2
つの状況を以下に示します:
root
ワードリストの定義を参照してください)。
THEN と ENDIF
は同義語(synonyms)です)。
Synonym ( "name" "oldname" – ) tools-ext “Synonym”
oldname と同一に振る舞うように name を定義します。 つまり、 同一のインタプリタ機能(interpretation
semantics)と、 同一のコンパイル機能(compilation semantics)と、 同一の to/defer!
や defer@ 機能を持ちます。
Gforth は、 コンパイル機能、 または to/defer! や defer@ 機能を親から継承しない、
非標準の alias も提供します。 あなたは後で、 例えば immediate
などを使用してコンパイル機能などを変更できます。
Alias ( xt "name" – ) gforth-0.2 “Alias”
name を xt を実行するワードとして定義します。 defer された ワードとは異なり、 エイリアス(aliase)にはコンパイル時に間接的なオーバーヘッドがありません。
Example:
: foo ... ; immediate ' foo Alias bar1 \ bar1 is not an immediate word ' foo Alias bar2 immediate \ bar2 is an immediate word synonym bar3 foo \ bar3 is an immediate word
synonyms(同義語)とaliases(別名)はどちらも元の nt とは異なる nt を持ちますが、 それをチック(tick)すると(または
name>interpret を使用すると)、 元の xt と同じ xt が生成されます(see Tokens for Words)。