ICDロゴ

バイト・コード (byte code)

最終更新日: 2002/05/19

 1byte単位で可変長となっている命令コード・セット体系のこと。特に命令コード部分のサイズが1byteの固定長であることから、こう呼ばれる。Java仮想マシンにおける中間的な命令コード・セットや、初期のPascal言語処理系における中間コードなどとして使用されている。

 インタープリタ型の言語処理系では、実行速度を向上させたり、コード・サイズをコンパクトにしたりするために、元のソース・プログラムを仮想的なコンピュータの命令コードに変換してから実行することが多い。また、コンパイル型の言語処理系でも、ターゲットとなるマシン・アーキテクチャに依存しないようにして開発の手間を削減するために、やはり仮想的なコンピュータを想定することがある。このとき使われるマシン・アーキテクチャや命令コード・セットとしては、命令コード長が短くてコード効率がよく、実際に実行するマシンのアーキテクチャに依存せず、元のプログラムの実行を高度に支援できるようなものが望まれる。バイト・コードでは、基本的な命令コード長を1byteに限定することによってコード・サイズを抑えている(オペランド部は必要に応じて1byte単位で付加される)。またメモリやオブジェクトの管理などを行うために高度な命令を備え、さらに、命令コード・サイズを抑えるためにスタック・アーキテクチャを採っていることが多い。スタック・アークテクチャのマシンでは、命令のオペランドは常にスタックの最上位に置かれていることが前提になるため、命令コード中にオペランド指定のためのフィールドを用意する必要がなくなるからだ。

 バイト・コードはインタープリタで実行するのが一般的であるが、高速化のために、バイト・コードを対象マシンのネイティブなマシン語に変換して実行したり(JITによるバイト・コード・コンパイルなど)、バイト・コードを直接実行したりするプロセッサの開発なども行われている。

Copyright (C) 2000-2007 Digital Advantage Corp.

参考リンク

アイティメディアの提供サービス

キャリアアップ