内部構造とデバッグファイルの解説


 HelloPascal4はPascal言語のソースファイルをまず中間コードにコンパイルした後、 それを仮想マシンによって実行しています。 ”デバッグファイル”は中間コードへのコンパイル結果を出力するものです。

  • 仮想マシン
     仮想マシンはレジスタのないスタックマシンとして定義され、 フレームデータ(ローカル変数など)とオペランド(式の値)が同一のスタック上に存在します。 フレーム内のデータはフレームレベルとオフセットの組で参照されます。

  • 中間コード
     中間コードはコードセクションとデータセクションに分かれます。 コードセクションには仮想マシンのインストラクションが置かれています。 データセクションには定数などが置かれます。 データセクションは実行時にフレームレベル0でアクセスできます。

  • デバッグファイル
     デバッグファイルはコンパイル時に出力され、 ソースファイルと中間コードとの対応を調べることができます。 特に、原因のわからない”実行時エラー”が発生する場合、 エラーが起こったコードのアドレスから ソースコードのどの位置でエラーが発生しているか発見することができます。


  • HelloPascalの解説
    <TOP>