インタプリタ
基本的に言語パース構造と実行環境が分離していない実行型の環境
中間コードを作るという説明が多そうだが自作のコードはそうでもないのでメモ
プログラミング言語では、言語解析の後、インタプリタ内部の中間コードなどとして保存され、実行時に中間コードを解釈しながら実行される。 中間コードを生成せず、メモリ内のオブジェクトとして管理されている形なども可能。
ソースコードは階層化されて複雑化してきているためBNF表記などで書式を決める。BNF構造が定義できればそれをそのまま処理系にかければオブジェクトに変換することが可能になる。C言語などのオブジェクトではなく、classなどをひとつひとつclass object 的なものに変換していく。Java であれば java.lang.reflection に いろいろあるのでそれと似たような扱いができるものに変換する。スキーマ記述言語などの処理に近い部分になる。 中間コードを生成するまではコンパイラも変わらないが、実行順に処理するのか全体を処理するのかという違いはあるかもしれない。