ホーム 編集 SikiWiki

式鬼言語の深淵 式鬼言語は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]を置いてメールしてください。