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

