バイトコード
出典: フリー百科事典『ウィキペディア(Wikipedia)』
バイトコードは、バーチャルマシンによる実行のために設計された、実行可能なプログラムのバイナリ表現である。ソフトウェアによって処理されるため、大抵は機械語より抽象度の高い中間コードになっている。プログラミング言語の実装において、特定のハードウェアへの依存度を下げ、またインタプリタの実装を容易にするために用いられる。コンパイラの中間コードとして用いられることもある。
バイトコードという名前は命令コード(オペコード)が1バイトでできていることからくる。オペランドを含む命令データ長までもが1バイトという意味ではない。しかし現実のバイトコードの定義は言語処理系によって様々である。
バイトコードで記述されたプログラムは通常、バイトコードインタプリタによって解釈・実行される。バイトコードインタプリタは機械語を解釈・実行するCPUとの類似性からバーチャルマシンとも呼ばれる。
バイトコードを用いる方式の利点は移植性の高さである。この利点はバイトコードを用いない単純なインタプリタと共通する。しかしバイトコードのほうが抽象度の低さ、データサイズなどの点で優れており、人の手で読み書きされる用途のソースコードよりコンピュータにとって扱いやすいため、単純なインタプリタよりパフォーマンスは多くの場合で上回る。このパフォーマンス上の利点から、現在の多くのインタプリタ言語は実際にはバイトコードへコンパイルされた後、バイトコードインタプリタによって実行される。Javaのプログラムは標準的にはバイトコードとして配布され、JITコンパイラによって機械語に変換される。