XT

データとしての実行コード



XTとはEXECUTION TOKENの略称です。特殊なものをのぞいて、すべてのワードは、それ固有のXT値を持っています。それが何の値であるかは実装に依存しますが、Mopsでは端的に、そのワードの実行コードが保管されているメモリー(辞書内)の先頭のアドレス値になっています。(正確には、実行コードの先頭それ自体ではなく、ヘッダデータの長さに応じてそこから-2または-6の位置のアドレスになっています。)

ワードのXTは数値として扱われます。数値ですから、普通の変数に格納するすることができます。それだけでなく、この値の最も重要な機能として、このデータを用いて、対応するワードを呼び出すことができるのです。

ワードmyWordのXTを取る基本的な方法は、1文字ワード「'」(tick:ティック)です
'  myWord   \ myWordのXTがスタックにおかれる

スタック上のXTを用いて対応するワードを実行するワードはEXECUTEです。
EXECTE ( i*x xt -- j*x )

i*xとj*xは、ここで実行されるXTに対応するワードの、それぞれ入力と出力を意味します。これは当然、そのXTによって変わり、複数ある場合も、ない場合もあります。EXECUTE自体としては、入力はXTのみ、出力はないと考えていいと思います。

EXECUTEの働きをかいつまんでいえば、
'  MyWord  EXECUTE
MyWord
と同等、ということです。

XT値を扱いうることの主要な利点は、呼び出し部分よりも後に本体のワードの定義を書くこともできるということです。[']およびVECTの項もご参照ください。


関連項目:






最終更新:2019年06月18日 17:18