中間言語
Intermediate language
中間表現(Intermediate Representation)とも呼ばれる。
機械語までは行かないが、機械的に単純に解釈・実行可能な命令群に置き直した言語。
内部的に使われ、人間が直接読み書きすることを想定していない。
中間言語を使うメリット
いちいち文法解析をする必要がない。
内部的に使うものなので独自の体系でよい。(既存の言語、CPUに依存しない。)
一旦中間言語を通して別の言語に置き直すような使い方もある。→トランスパイラ
中間言語を通すことで、プログラミング言語m種から各種機械語n種の組合せがm×n個必要なのに対して、プログラミング言語から中間言語へがm個、中間言語から機械語へがn個あれば良くなる。
中間言語の方が元のソースより小さくなることがある。
文字列の識別子よりID番号の方が短くて済む。
インデントや記号類などの表現系の情報が無くて済む。
中間言語を使うデメリット
直接変換すれば最適化ができる部分ができなくなることがある。(一部の情報が欠落する。)
必然的に2回変換が必要となるため、パフォーマンスが落ちる。
関連
プログラミング言語