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