Previous: , Up: Defining Words   [Contents][Index]


6.10.13 Aliases

定義ワード synonym を使用すると、 他のワードと同一の振る舞いをするワードを名前で定義できます。 これが役立つ 2 つの状況を以下に示します:

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”

namext を実行するワードとして定義します。 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)。