式鬼言語の深淵 式鬼言語はCellでできています
2007/03/11_142657式鬼言語を構成する要素であるCellについて説明します。
式鬼言語では、オブジェクト・クラス・メソッド・継続・名前空間・命令コマンドといった、通常の言語では別の要素・機能として扱われるものまで含めて、Cellと呼んでいるデータ構造体で管理しています。
構造の詳細
Cellは下記のような構造となっています。
- Cell
- Cell同士の関係の管理
- head (Cellへのリンクのリスト)
予備のスタックとして用意されています。 - neck(Cellへのリンクのリスト)
予備のスタックとして用意されています。 - body (Cellへのリンクのリスト)
主に実行する命令の管理に使用します。 - tail (Cellへのリンクのリスト)
主に戻り値の管理に使用します。 - link (Cell -> Cell のマップ)
主に名前空間の管理や変数の管理に使用します。また、メッセージと連携してマルチメソッドを実現します。 - master (Cellへのリンクのリスト)
委譲する相手を管理します。 - C++ネイティブへのバインド
- core
式鬼言語では処理できないプロセス処理や、Cellの関係では表現できないデータなどを管理します。ネイティブ言語(C++)へのバインドです。
さらに、linkには特別に名前のついたものが存在します。
- link
- next
Cellの処理結果を待ち受ける継続を示します。 - ring
nextと組み合わせてCellのwindやrewindを管理します。 - enter
該当のCellを実行する前に実行するwind処理を管理します。 - leave
該当のCellの実行が終了した時に実行するrewind処理を管理します。
著作・製作
(C)野分 nowake fiercewinds.net
スペースを@に置き換えて、件名 (Subject:) の頭に[fiercewinds]を置いてメールしてください。