* 仮想マシン [#c5820a88] #contents * 構成 [#ke3cf9b5] - 1つのScriptVM - 1つ以上のScriptContext ** ScriptVM [#bb572835] - 仮想マシン。 - コンパイル済みの命令コード,ユーザー定義型の初期化データ(.init)を持つ。 - staticなデータはこいつが持ち,複数のContextで共有することになる。 ** ScriptContext [#uc0127e1] - コンテキスト。スレッド。 - スタック,レジスタは各ScriptContextがそれぞれ持つ。 * ScriptVMのセットアップ [#hae3d592] - セットアップ前準備 -- コンパイル済みのスクリプトコードの追加。 -- 関数,クラス類,変数類のC++とのバインド。 - セットアップ -- 未解決シンボルのチェック。 -- staticデータに.initデータをコピー。 -- 各クラスのstaticコンストラクタを呼び出す。 |