Top > Shiba > Shiba Byte Code

Shiba Byte Code Edit

バイトコード Edit

  • Cでいう.oのファイル。

含まれるもの

  • モジュール名
  • 定数テーブル
  • シンボルテーブル
  • シンボル一覧
  • シンボル解決情報

モジュール名 Edit

  • モジュール名が文字列として格納される。

定数テーブル Edit

  • 必要な定数テーブルの長さ。
  • コンパイル時に解決されている定数郡。
  • .oのファイルサイズ縮小のために,コンパイル時に解決されている定数郡は定数テーブルの先頭に置いておく。
  • そうしておくことで,リンク時に解決される定数郡のデータ量が.oから削減される。(.sbssと同じ考え方)

シンボルテーブル Edit

  • 必要なシンボルテーブルの長さのみ格納される。

シンボル一覧 Edit

  • モジュールはユーザー定義型リストを持つ。
ユーザー定義型リスト
  • ユーザー定義型についての情報が0個以上格納されている。
  • エンジンではユーザー定義型の情報が1つにつきSSObjectTypeが1つ生成される。
    項目内容
    シンボルのパス文字列BaseLib.Math.Vector3
    継承しているクラスのパス文字列Foo
    仮想関数テーブルリスト別項:仮想関数テーブルリストを参照
    変数リスト別項:変数リストを参照
    関数リスト別項:関数リストを参照
仮想関数テーブルリスト
  • 仮想関数テーブルについての情報が0個以上格納されている。
  • エンジンでは仮想関数テーブルの情報が1つにつきSSVirutalFuncTableが生成される。
    項目内容
    シンボルのパス文字列BaseLib.IDrawable
    仮想関数シンボルテーブルSymbolTableIndexの配列
変数リスト
  • 変数についての情報が0個以上格納されている。
  • エンジンでは変数の情報が1つにつきSSVariableが1つ生成される。
    項目内容
    型を示すシンボルのパス文字列float
    シンボル名文字列x
    staticフラグbool(staticか否か)
    readonlyフラグbool(readonlyか否か)
    constフラグbool(constか否か)
関数リスト
  • 関数についての情報が0個以上格納されている。
  • エンジンでは関数の情報が1つにつきSSFunctionが1つ生成される。
    項目内容
    シンボル名文字列add
    戻り値の型を示すシンボルのパス文字列BaseLib.Math.Vector3
    戻り値のconstフラグbool(constか否か)
    引数リスト別項:引数リストを参照
    staticフラグbool(staticか否か)
    constフラグbool(constか否か)
    命令コードバイトコード
引数リスト
  • 引数についての情報が0個以上格納されている。
  • エンジンでは引数の情報が1つにつきSSFunctionArgが1つ生成される。
    項目内容
    型を示すシンボルのパス文字列float
    constフラグbool(constか否か)
    refフラグbool(refか否か)

シンボル解決情報 Edit

  • シンボルの種類は変数・関数・ユーザー定義型の3つ。
変数
項目内容
代入先定数テーブル or シンボルテーブル-
シンボルパス解決するシンボルのパスBaseLib.Math.Vector3.x
シンボルの何を取得するのか。・変数オブジェクト(SSVariableのポインタ)
・サイズ(u32)
・先頭からのオフセット距離(u32)
-
関数
項目内容
代入先シンボルテーブル-
シンボルパス解決するシンボルのパスBaseLib.Math.Vector3.add
引数リスト引数の型のリスト
属性const,staticなどの属性
シンボルの何を取得するのか。・関数オブジェクト(SSFunctionのポインタ)-
ユーザー定義型
項目内容
代入先定数テーブル-
シンボルパス解決するシンボルのパスBaseLib.Math.Vector3
シンボルの何を取得するのか。・ユーザー定義型オブジェクト(SSObjectTypeのポインタ)
・サイズ(u32)
-

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Sat, 31 Jul 2010 20:34:21 JST (5011d)