バイトコード

提供: MonoBook
移動: 案内検索

バイトコード英語:byte code)とは、ネイティブコードおよび中間コードの実装形式のひとつで、すべてのオペコード(命令)を固定長のバイト数(主に1バイト固定長)で表現する形式のものをいう。固定長の特定バイト数で区切るのでバイトコードという名前だという。

バイトコードの定義[編集]

近年ではオペコード固定長でない中間コード形式についてもバイトコードと呼び、また中間コードとバイトコードをイコールとする人も増えているが、正確にはどちらもイコールではない。たとえば.NET Frameworkで用いられるマネージドコードオペコード可変長であり、バイトコードではない。ただし、そんな細かいことを気にしても仕方がないので気にしてはならない。

バイトコードはSmalltalkJavaで使われている。とくにJavaの人気に押されるかたちでJavaバイトコードが爆発的に普及したことで、バイトコードとJavaバイトコードを同一視する人も増えているが、正確にはイコールではない。ただし、そんな細かいことを気にしても仕方がないので気にしてはならない。

また、Javaの人気によりバイトコードは中間コードとイコールと思われているが、ARMプロセッサーで使われているARMコードのようにネイティブコードの場合もある。

バイトコードの利点[編集]

バイトコードはオペコード固定長であるため、命令のパース時に命令の長さを調べたりすることによる分岐を減らせ、バイトコードをネイティブコードに変換し実行するインタプリタJITコンパイラの実装をシンプルにできるなどのメリットがあり、ARMのような半導体では電子回路を簡略化できるという。例えるならばCPUでいうRISCの概念に近い。

主なバイトコード形式[編集]

関連項目[編集]

参考文献[編集]


外部リンク[編集]