「中間言語」の版間の差分
(→関連項目) |
imported>Administrator |
||
4行目: | 4行目: | ||
中間言語のうち、1[[バイト]]の[[オペコード]]と続くパラメーター(オプションなのでパラメーターが無いこともある)で表す、かなりマシン語に近い実装形式を[[バイトコード]]という。 | 中間言語のうち、1[[バイト]]の[[オペコード]]と続くパラメーター(オプションなのでパラメーターが無いこともある)で表す、かなりマシン語に近い実装形式を[[バイトコード]]という。 | ||
− | ただし、近年では1[[バイト]]の[[オペコード]]で表現する実装形式でなくとも[[バイトコード]] | + | ただし、近年では1[[バイト]]の[[オペコード]]で表現する実装形式でなくとも[[バイトコード]]と呼ばれることが多くなっており、よほどの偏屈相手でも無い限り、バイトコードと中間言語と区別する必要はない。なお、偏屈な[[マイクロソフト]]は[[.NET Framework]]で用いる中間言語([[共通中間言語]])に可変長の[[オペコード]](と言ってもせいぜい2バイトだが)を採用し「[[マネージドコード]]」と名乗っている。 |
− | + | ||
+ | == .NET FrameworkにおけるIntermediate Language == | ||
+ | 非常に紛らわしいことに、[[.NET Framework]]の規格の中で定義されているもっとも低水準な[[プログラミング言語]]である[[アセンブリ言語]]は、このページで記載している「中間言語」と同じ英語「intermediate language」、通称「[[IL]]」と呼ばれる。 | ||
+ | |||
+ | 名称は同一だが、[[.NET Framework]]でいう「[[IL]]」は、あくまで人間が読むための[[アセンブリ言語]]であり、このページに記載しているバイナリ寄りなものではない。 | ||
+ | [[.NET Framework]]におけるこのページでいう中間言語に相当するものは「[[マネージドコード]]」である。 | ||
+ | |||
+ | [[.NET Framework]]でいう「[[IL]]」の詳細については「[[共通中間言語]]([[CIL]])」のページを参照せよ。なお、 | ||
== 関連項目 == | == 関連項目 == |
2012年4月25日 (水) 04:39時点における版
中間言語(intermediate language)とは、プログラミング言語をもちいて書かれたソースコードを、コンピュータが理解できる唯一の言葉であるマシン語に直接変換せず、中間的な形式に置き換えたもののことである。中間コード(intermediate code)と呼ばれることもある。
プログラマーが書いたソースコードは人間が書く都合上、文法ミスなどが発生するが、文法チェックや構文解析などの比較的重い処理を事前にやっておき、問題がなければ中間言語として保存しておくことで、インタプリタにおける実行速度を高速化したり、コンパイラにおいてプラットフォームに依存しない最適化を行う際に用いられる。
中間言語のうち、1バイトのオペコードと続くパラメーター(オプションなのでパラメーターが無いこともある)で表す、かなりマシン語に近い実装形式をバイトコードという。 ただし、近年では1バイトのオペコードで表現する実装形式でなくともバイトコードと呼ばれることが多くなっており、よほどの偏屈相手でも無い限り、バイトコードと中間言語と区別する必要はない。なお、偏屈なマイクロソフトは.NET Frameworkで用いる中間言語(共通中間言語)に可変長のオペコード(と言ってもせいぜい2バイトだが)を採用し「マネージドコード」と名乗っている。
.NET FrameworkにおけるIntermediate Language
非常に紛らわしいことに、.NET Frameworkの規格の中で定義されているもっとも低水準なプログラミング言語であるアセンブリ言語は、このページで記載している「中間言語」と同じ英語「intermediate language」、通称「IL」と呼ばれる。
名称は同一だが、.NET Frameworkでいう「IL」は、あくまで人間が読むためのアセンブリ言語であり、このページに記載しているバイナリ寄りなものではない。 .NET Frameworkにおけるこのページでいう中間言語に相当するものは「マネージドコード」である。
.NET Frameworkでいう「IL」の詳細については「共通中間言語(CIL)」のページを参照せよ。なお、
関連項目
参考文献
外部リンク
」