バイトコード

出典: フリー百科事典『ウィキペディア(Wikipedia)』

バイトコード(bytecode)は、仮想マシンによる実行のために設計された、実行可能なプログラムバイナリ表現である。ソフトウェアによって処理されるため、大抵は機械語より抽象度の高い中間コードになっている。プログラミング言語の実装において、特定のハードウェアへの依存度を下げ、またインタプリタの実装を容易にするために用いられる。コンパイラの中間コードとして用いられることもある。

バイトコードという名前は命令コード(オペコード)が1バイトでできていることからくる。オペランドを含む命令データ長までもが1バイトという意味ではない。しかし現実のバイトコードの定義は言語処理系によって様々である。

バイトコードで記述されたプログラムは通常、バイトコードインタプリタによって解釈・実行される。バイトコードインタプリタは機械語を解釈・実行するCPUとの類似性からバーチャルマシンとも呼ばれる。

バイトコードを用いる方式の利点は移植性の高さである。この利点はバイトコードを用いない単純なインタプリタと共通する。しかしバイトコードのほうが抽象度の低さ、データサイズなどの点で優れており、人の手で読み書きされる用途のソースコードよりコンピュータにとって扱いやすいため、単純なインタプリタよりパフォーマンスは多くの場合で上回る。このパフォーマンス上の利点から、現在の多くのインタプリタ言語は実際にはバイトコードへコンパイルされた後、バイトコードインタプリタによって実行される。またパフォーマンス以外にも、ソースコードの中身を隠蔽する目的でバイトコードが用いられる場合がある。

バイトコードを使用した初期のコンピュータにはSystem/38があり、ソフトウェアのインストール時に機械語に変換された。またJavaのプログラムは標準的にはバイトコードとして配布され、JITコンパイラによって機械語に変換される。

[編集] 使用例

[編集] 関連項目