実行

スクリプトコンパイルから実行までの流れは以下のようになります。

  1. 動作管理構造体(vm)の初期化
    • 管理構造体を初期化します。必要なメモリはここで確保されます。
  2. テキストにて記載されたスクリプトを実行可能オブジェクトに変換します(このフェーズをコンパイルと呼びます)
    • コンパイルエラーが発生すると、インタプリタはコンパイルエラー例外をThrowします
      • スクリプト実行前の例外は、回復不能例外となるため、インタプリタの動作はそこで停止します。
      • このとき、コンパイルエラーの内容がエラー出力へ出力されます。
    • クラスの静的インスタンスは、コンパイル時に順次生成されます。
      • クラス変数の初期値が指定されている場合、この時点で初期値が代入されます。
  3. コンパイルが正常終了した場合のみ、スクリプトの実行が開始されます。
    1. Kernelクラスのmk_mainメソッドから実行が開始されます。
    2. 2.のメソッドの実行が終了時点でスクリプトの実行が終了します。
  4. vmの管理するメモリを解放し、インタプリタを終了します。