|
中間言語(ちゅうかんげんご)とは、プログラミング言語処理系において(#プログラミング言語処理系)と、言語学において(#言語学における中間言語)指す内容が異なる。詳細は以下を参照。 == プログラミング言語処理系 == 中間言語は、プログラミング言語処理系において、高水準言語のソースコードと機械語のコードの中間にあたる中間表現の言語である。 人間が読むことのできる状態から、コンピュータ内部のデータ形式に一旦置き換えたもので、機械語ではないため、そのままCPUが解釈して実行することはできない。BASICなどのインタプリタで実行速度の高速化のためによく利用される。また、コンパイラでは高度な最適化を施すためには中間表現が欠かせない。 仮想機械の機械語でバイト指向の中間言語をバイトコードという。目的機械のコード生成の前段階として、アーキテクチャ独立の一種の機械語と言える3番地コードを使うコンパイラがある。.NET Frameworkでは共通中間言語を定義した。Pコードを使うPascalの実装がある。 初期のBASIC処理系の実装で用いられた中間言語は、バイトコードのようなものではなく、字句解析のみを行い、予約語などを数値に変換しただけといったものもあった。実行時の字句解析が不要になるが、ソースコードに戻して表示、編集することもできる。GOTOの飛び先をキャッシュするなどの工夫がされたものもあった。高度な中間言語を利用する実装もあり、N88-日本語BASIC(86)(MS-DOS版)のコンパイラは、実行ファイルを出力するが、その内部は中間言語コードでありまたその実行には外部に、中間言語のインタプリタを含むランタイムライブラリが必要だった。 中間言語から、簡単にソースコードを復元、推定することが出来るものも多い(難読化、ないし推定不可能にするものもある)。そのため、ソースコード保護の目的などで、難読化ツール(obfuscator)があり、使われることがある。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「中間言語」の詳細全文を読む スポンサード リンク
|