「バイトコード」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「'''バイトコード'''とは、中間コードの実装形式のひとつで、すべてのオペランド(命令)を固定長のバイト数(主に...」)
 
3行目: 3行目:
 
バイトコードは[[オペコード]]が[[固定長]]であるため、命令の[[パース]]時に命令の長さを調べたりすることによる分岐を減らせ、バイトコードを[[ネイティブコード]]に変換し実行する[[インタプリタ]]や[[JITコンパイラ]]の実装をシンプルにできるなどのメリットがある。例えるならば[[CPU]]でいう[[RISC]]の概念に近い。
 
バイトコードは[[オペコード]]が[[固定長]]であるため、命令の[[パース]]時に命令の長さを調べたりすることによる分岐を減らせ、バイトコードを[[ネイティブコード]]に変換し実行する[[インタプリタ]]や[[JITコンパイラ]]の実装をシンプルにできるなどのメリットがある。例えるならば[[CPU]]でいう[[RISC]]の概念に近い。
  
近年では[[オペコード]]が[[固定長]]でない[[中間コード]]形式についてもバイトコードと呼び、[[中間コード]]とバイトコードをイコールとする人も増えているが、正確にはバイトコードではない。たとえば[[.NET Framework]]で用いられる[[マネージドコード]]の[[オペコード]]は[[可変長]]であり、バイトコードではない。ただし、そんな細かいことを気にしても仕方がないので気にしてはならない。
+
近年では[[オペコード]]が[[固定長]]でない[[中間コード]]形式についてもバイトコードと呼び、[[中間コード]]とバイトコードをイコールとする人も増えているが、正確にはイコールではない。たとえば[[.NET Framework]]で用いられる[[マネージドコード]]の[[オペコード]]は[[可変長]]であり、バイトコードではない。ただし、そんな細かいことを気にしても仕方がないので気にしてはならない。
  
バイトコードは[[Smalltalk]]や[[Java]]で使われている。とくに[[Java]]の人気に押されるかたちで[[Javaバイトコード]]が爆発的に普及したことで、バイトコードと[[Javaバイトコード]]を同一視する人も増えている。ただし、そんな細かいことを気にしても仕方がないので気にしてはならない。
+
バイトコードは[[Smalltalk]]や[[Java]]で使われている。とくに[[Java]]の人気に押されるかたちで[[Javaバイトコード]]が爆発的に普及したことで、バイトコードと[[Javaバイトコード]]を同一視する人も増えているが、正確にはイコールではない。ただし、そんな細かいことを気にしても仕方がないので気にしてはならない。
  
 
== 関連項目 ==
 
== 関連項目 ==

2012年4月25日 (水) 03:53時点における版

バイトコードとは、中間コードの実装形式のひとつで、すべてのオペランド(命令)を固定長のバイト数(主に1バイト固定長)で表現する形式のものをいう。

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

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

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

関連項目

参考文献


外部リンク