プログラミング言語で書かれたソースコードと、コンピュータが直接解釈できるオブジェクトコードの中間にあたる形式のプログラムコードのことです。
人間が読み書きしやすいソースコードのままでは、コンピュータは解釈・実行できないため、機械語のコード(オブジェクトコード)へ変換する必要があります。この変換を実行時に行う場合(インタプリタを用いる)、その変換の分だけ実行速度が低下します。コンパイラを用いて、実行前に変換しておく方法を採ると、実行速度の低下はありませんが、その機械語を理解できるコンピュータ(CPU)でしか実行できないことになります(インタプリタの場合も、その CPU 向けのコードに変換できる必要はあるが)。
両者のあいだをとったような性質を持つのが中間コードで、いわば架空のコンピュータの機械語のようなかたちで表現されます。中間コードもそのままでは実行できず、オブジェクトコードに変換する必要がありますが、その役割を仮想マシンと呼ばれるソフトウェアが受け持ちます。中間コードを実行したいコンピュータ上で仮想マシンを実行し、仮想マシンが中間コードをオブジェクトコードに変換して実行します。機械語が異なるコンピュータが多種多様に存在しても、それぞれに対応した仮想マシンをあいだに挟むことで、どの環境でも実行が可能になります。
中間コードを使う方法も、実行時にオブジェクトコードへの変換が挟まるため、最初からオブジェクトコードになっている場合よりは遅くなるものの、中間コードからオブジェクトコードへの変換は、ソースコードからオブジェクトコードへの変換に比べてはるかに容易であり、処理速度の低下はわずかで済みます。
このような方式を採っているプログラミング言語に Java があります。プログラマーは、Java の文法に従ってソースコードを作成し、Java のコンパイラを用いて中間コードに変換します。実行には、Java の仮想マシンを含んだ、JRE (Java Runtime Environment) という実行環境が必要で、これがオブジェクトコードへの変換・実行を行います。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |