Previous: , Up: Tokens for Words   [Contents][Index]


6.12.3 Compilation token

名前付きワードのコンパイル機能(compilation semantics)は、 2 つのセル w xt で構成されるコンパイル・トークン(compilation token)によって表されます。 一番上のセル xt は実行トークンです。 コンパイル・トークンによって表されるコンパイル機能は、 execute で実行できます。 これは、 コンパイル・トークン全体を消費し、 コンパイル・トークンが表すコンパイル機能(compilation semantics)によって決定される追加のスタック効果を伴います。

現時点では、 コンパイル・トークンの w 部分は実行トークンで、 xt 部分は execute または compile, のいずれかを表します22。 ただし、 必要な場合を除き、 この知識に頼らないでください。 Gforth の将来のバージョンでは、 普通でない(unusual)なコンパイル・トークン(リテラルのコンパイル機能を表すコンパイル・トークンなど)が導入される可能性があります。

たとえば、 if のコンパイル・ークンは、 name>compile を使用した標準的な方法(例: `if name>compile)で取得できますが、 コンパイル・トークンを取得するためのパース・ワードもあります:

[COMP'] ( compilation "name" – ; run-time – w xt  ) gforth-0.2 “bracket-comp-tick”

コンパイル・トークン w xt は、 name のコンパイル機能(compilation semantics)を表します。

COMP' ( "name" – w xt  ) gforth-0.2 “comp-tick”

コンパイル・トークン w xt は、 name のコンパイル機能(compilation semantics)を表します。

execute を使用して、 コンパイル・トークンによって表されるコンパイル機能(compilation semantics)を実行できます。 postpone, を使用してコンパイル機能(compilation semantics)をコンパイルできます。 つまり、 ``x name>compile postpone,postpone x と同等です。

postpone, ( w xt –  ) gforth-0.2 “postpone-comma”

コンパイル・トークン w xt で表されるコンパイル機能(compilation semantics)をコンパイルします。


Footnotes

(22)

これは、 ワードのコンパイル機能(compilation semantics)に依存します。 ワードにデフォルトのコンパイル機能(compilation semantics)がある場合、 xtcompile, を表します。 それ以外の場合(たとえば、 即実行ワードの場合)、 xtexecute を表します