|
中間表現(ちゅうかんひょうげん、)は、コンピュータプログラムなどにおいて、入力から構築されるデータ構造のことである。入力から出力を生成するプログラムでは、入力から直接出力を生成するのではなく、一旦なんらかのデータ構造を構築(データ構造に変換)して、そこから出力を生成することがあり、そのデータ構造を中間表現という。 プログラミング言語処理系では、ソースコードを元に構築されるデータ構造のことである。 典型的な例としては、コンパイラがある。コンパイラは、人間が読み書きできるソースコードから、中間的なグラフデータ構造を構築し、それを使ってデータフロー解析を行ったり、実際にオブジェクトコードを生成する前にデータ構造の再配置を行ったりする。 インタプリタにおいても、ソースコードをそのままなぞるのではなく、なんらかのデータ構造に一旦変換してから、実行するという構成があり、このデータ構造が中間表現である。 中間表現が、言語の形態をとっている場合、その言語を中間言語と言う。コンピュータ内部のデータ構造の場合など、任意のポインタで接続された構造が可能であり、中間表現が言語的であるとは限らない。Javaの .class ファイルのように、インタフェースとして定義され、外部に出力されるものもある。また、仮想機械のコードという形の場合、中間コードと言う。 Javaのように、処理系を、共通の中間表現の生成系と中間表現の実行系に分離すると、実行系のみをマシン毎に用意することで、単一の中間表現を命令セットが異なる複数種類のマシンで動作させることができる。 機械翻訳において、自然言語の表現に依存しないデータ構造を内部的に使用する場合があり、これを中間表現と呼ぶ。任意の自然言語から独立した表現(pivot)を利用する機械翻訳の手法(ピボット翻訳)があり、その言語は中間言語(:en:Pivot language、直訳的に枢軸言語とも)という。 == 関連項目 == * 抽象構文木 * シンボルテーブル * 中間言語 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「中間表現」の詳細全文を読む スポンサード リンク
|