中間言語 【intermediate language】
概要
中間言語(intermediate language)とは、ある言語の表現を別の言語に翻訳、変換する際に経由する中間的な言語。通常はコンピュータが用いる人工言語を指し、自然言語の翻訳に用いるものとコンピュータ言語の変換に用いるものがある。コンピュータプログラムの開発では、プログラミング言語で書かれたソースコードをCPUが実行可能な機械語で書かれたネイティブコードに変換する必要があるが、ソースコードをいったん中間言語のプログラムに変換し、これをネイティブコードに変換する二段階の変換を行うことがある。
中間言語は架空のCPUの機械語のような形式になっていることが多く、実際のCPU固有の機械語表現に変換するのは容易となっている。プログラムを中間形式で配布することにより、同じプログラムを様々な機種やオペレーティングシステム(OS)のもとで動作させられるようになる。
有名な例としては、Java言語のプログラム配布に用いられる「Javaバイトコード」や、.NETプログラムの配布に用いられる「CIL」(Common Intermediate Language)などがある。これらはコンパイラや仮想マシン(VM)などが自動処理することを想定した言語であり、プログラミング言語のように人間が直接読み書きすることは想定されていない。
自然言語の中間言語
自然言語の機械翻訳でも、表現を特定の言語に依存しない中間的な形式に翻訳し、これを目的の言語に再翻訳するという手法が用いられることがある。各言語について、中間言語への翻訳、中間言語からの翻訳の仕組みを整備すれば、言語同士の組み合わせをすべて翻訳可能にしなくても対応言語を増やせる利点がある。しかし、中間言語を介して必ず2回翻訳(重訳)することになるため、誤訳や細かなニュアンスの喪失が起きやすい難点がある。
(2024.8.2更新)