メインメニューを開く

「バイトコード」を編集中

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
'''バイトコード'''([[英語]]:byte code)とは、[[ネイティブコード]]および[[中間コード]]の実装形式のひとつで、すべての[[オペコード]](命令)を固定長の[[バイト]]数(主に1バイト固定長)で表現する形式のものをいう。固定長の特定バイト数で区切るのでバイトコードという名前だという。
+
'''バイトコード'''(byte code)とは、[[中間コード]]の実装形式のひとつで、すべての[[オペコード]](命令)を固定長の[[バイト]]数(主に1バイト固定長)で表現する形式のものをいう。
  
== バイトコードの定義 ==
+
バイトコードは[[オペコード]]が[[固定長]]であるため、命令の[[パース]]時に命令の長さを調べたりすることによる分岐を減らせ、バイトコードを[[ネイティブコード]]に変換し実行する[[インタプリタ]]や[[JITコンパイラ]]の実装をシンプルにできるなどのメリットがある。例えるならば[[CPU]]でいう[[RISC]]の概念に近い。
近年では[[オペコード]]が[[固定長]]でない[[中間コード]]形式についてもバイトコードと呼び、また[[中間コード]]とバイトコードをイコールとする人も増えているが、正確にはどちらもイコールではない。たとえば[[.NET Framework]]で用いられる[[マネージドコード]]の[[オペコード]]は[[可変長]]であり、バイトコードではない。ただし、そんな細かいことを気にしても仕方がないので気にしてはならない。
+
 
 +
近年では[[オペコード]]が[[固定長]]でない[[中間コード]]形式についてもバイトコードと呼び、[[中間コード]]とバイトコードをイコールとする人も増えているが、正確にはイコールではない。たとえば[[.NET Framework]]で用いられる[[マネージドコード]]の[[オペコード]]は[[可変長]]であり、バイトコードではない。ただし、そんな細かいことを気にしても仕方がないので気にしてはならない。
  
 
バイトコードは[[Smalltalk]]や[[Java]]で使われている。とくに[[Java]]の人気に押されるかたちで[[Javaバイトコード]]が爆発的に普及したことで、バイトコードと[[Javaバイトコード]]を同一視する人も増えているが、正確にはイコールではない。ただし、そんな細かいことを気にしても仕方がないので気にしてはならない。
 
バイトコードは[[Smalltalk]]や[[Java]]で使われている。とくに[[Java]]の人気に押されるかたちで[[Javaバイトコード]]が爆発的に普及したことで、バイトコードと[[Javaバイトコード]]を同一視する人も増えているが、正確にはイコールではない。ただし、そんな細かいことを気にしても仕方がないので気にしてはならない。
 
また、[[Java]]の人気によりバイトコードは[[中間コード]]とイコールと思われているが、[[ARMプロセッサー]]で使われている[[ARMコード]]のように[[ネイティブコード]]の場合もある。
 
 
== バイトコードの利点 ==
 
バイトコードは[[オペコード]]が[[固定長]]であるため、命令の[[パース]]時に命令の長さを調べたりすることによる分岐を減らせ、バイトコードを[[ネイティブコード]]に変換し実行する[[インタプリタ]]や[[JITコンパイラ]]の実装をシンプルにできるなどのメリットがあり、[[ARM]]のような[[半導体]]では[[電子回路]]を簡略化できるという。例えるならば[[CPU]]でいう[[RISC]]の概念に近い。
 
 
== 主なバイトコード形式 ==
 
* [[Javaバイトコード]] - [[Java VM]]で使われている8ビット表現の命令セット。
 
* [[Thumbコード]] - ARMプロセッサの16ビット表現の命令セット。
 
* [[ARMコード]]  - ARMプロセッサの32ビット表現の命令セット。
 
  
 
== 関連項目 ==
 
== 関連項目 ==
* [[Javaバイトコード]] - [[SPARC]]の命令セットに近い。同じ会社だから当然と言えば当然。
+
* [[Javaバイトコード]]
 
* [[中間コード]]
 
* [[中間コード]]
 
* [[マネージドコード]]
 
* [[マネージドコード]]

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: