「バイトコード」の版間の差分
編集の要約なし |
Administrator (トーク | 投稿記録) |
||
| (4人の利用者による、間の9版が非表示) | |||
| 1行目: | 1行目: | ||
'''バイトコード''' | '''バイトコード'''([[英語]]: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]]の命令セットに近い。同じ会社だから当然と言えば当然。 | |||
* [[中間コード]] | * [[中間コード]] | ||
* [[マネージドコード]] | * [[マネージドコード]] | ||
[[category: プログラミング]] | |||