データとしての実行コード
XTとはEXECUTION TOKENの略称です。特殊なものをのぞいて、すべてのワードは、それ固有のXT値を持っています。それが何の値であるかは実装に依存しますが、Mopsでは端的に、そのワードの実行コードが保管されているメモリー(辞書内)の先頭のアドレス値になっています。(正確には、実行コードの先頭それ自体ではなく、ヘッダデータの長さに応じてそこから-2または-6の位置のアドレスになっています。)
ワードのXTは数値として扱われます。数値ですから、普通の変数に格納するすることができます。それだけでなく、この値の最も重要な機能として、このデータを用いて、対応するワードを呼び出すことができるのです。
ワードmyWordのXTを取る基本的な方法は、1文字ワード「'」(tick:ティック)です
' myWord \ myWordのXTがスタックにおかれる
スタック上のXTを用いて対応するワードを実行するワードはEXECUTEです。
i*xとj*xは、ここで実行されるXTに対応するワードの、それぞれ入力と出力を意味します。これは当然、そのXTによって変わり、複数ある場合も、ない場合もあります。EXECUTE自体としては、入力はXTのみ、出力はないと考えていいと思います。
EXECUTEの働きをかいつまんでいえば、
' MyWord EXECUTE
は
MyWord
と同等、ということです。
XT値を扱いうることの主要な利点は、呼び出し部分よりも後に本体のワードの定義を書くこともできるということです。
[']および
VECTの項もご参照ください。
関連項目:
最終更新:2019年06月18日 17:18