バイトコード
バイトコード(英語:byte code)とは、ネイティブコードおよび中間コードの実装形式のひとつで、すべてのオペコード(命令)を固定長のバイト数(主に1バイト固定長)で表現する形式のものをいう。固定長の特定バイト数で区切るのでバイトコードという名前だという。
概要
ながらく市場を支配したx86のネイティブコードが可変長、Javaの中間コードが固定長だったこともあり「バイトコード=Java」という図式が定着しています。
スマートフォンの普及で急激に勢力を伸ばしたARMも固定長のバイトコードですが、これだけarmだらけの世の中でも「バイトコード=Java=中間コード」という図式は変わっていません。あらゆるゲーム機はファミコンなのと同じです。
バイトコードの利点
バイトコードはオペコードが固定長であるため、命令のパース時に命令の長さを調べたりすることによる分岐を減らせ、バイトコードをネイティブコードに変換し実行するインタプリタやJITコンパイラの実装をシンプルにできるなどのメリットがあり、ARMのような半導体では電子回路を簡略化できるという。例えるならばCPUでいうRISCの概念に近い。
主なバイトコード形式
- Javaバイトコード - Java VMで使われている8ビット表現の命令セット。
- Thumbコード - ARMプロセッサの16ビット表現の命令セット。
- ARMコード - ARMプロセッサの32ビット表現の命令セット。
関連項目
- Javaバイトコード - SPARCの命令セットに近い。同じ会社だから当然と言えば当然。
- 中間コード
- マネージドコード