中間コード | Programming Place Plus 用語集

トップページ用語集

名称

解説

プログラミング言語で書かれたソースコードと、コンピュータが直接実行できるネイティブコードの中間にあたる形式のプログラムコードのことです。

人間が読み書きしやすいソースコードのままでは、コンピュータは解釈・実行できないため、機械語のネイティブコードへ変換する必要があります。この変換を実行時に行う場合(インタプリタを用いる)、その変換の分だけ実行速度が低下します。コンパイラを用いて、実行前に機械語のコードにしておく方法を採ると、実行速度の低下はありませんが、その機械語を理解できるコンピュータ(CPU)でしか実行できないことになります(インタプリタの場合も、その CPU 向けのコードに変換できる必要はあるが)。

両者のあいだをとったような性質を持つのが中間コードで、いわば架空のコンピュータの機械語のようなかたちで表現されます。中間コードもそのままでは実行できず、ネイティブコードに変換する必要がありますが、その役割を仮想マシンと呼ばれるソフトウェアが受け持ちます。中間コードを実行したいコンピュータ上で仮想マシンを実行し、仮想マシンが中間コードをネイティブコードに変換して実行します。機械語が異なるコンピュータが多種多様に存在しても、それぞれに対応した仮想マシンをあいだに挟むことで、どの環境でも実行が可能になります。

中間コードを使う方法も、実行時にネイティブコードへの変換が挟まるため、最初からネイティブコードになっている場合よりは遅くなるものの、中間コードからネイティブコードへの変換は、ソースコードからネイティブコードへの変換に比べてはるかに容易であり、処理速度の低下はわずかで済みます。

このような方式を採っているプログラミング言語に Java があります。プログラマーは、Java の文法に従ってソースコードを作成し、Java のコンパイラを用いて中間コードに変換します。実行には、Java の仮想マシンを含んだ、JRE (Java Runtime Environment) という実行環境が必要で、これがネイティブコードへの変換・実行を行います。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ


先頭へ戻る