プログラム

トランスコンパイラとは

トランスコンパイラ

トランスコンパイラとは

トランスコンパイラとは、あるプログラミング言語で書かれたソースコードを入力として受け取り、別のプログラミング言語の同等のコードを生成するコンパイラの一種です。

コンパイラが、高水準言語で書かれたソースコードを入力とし、低水準言語のコードを生成するのに対し、トランスコンパイラでは、同じ程度の水準のコードを出力します。

次の図はコンパイラとトランスコンパイラのイメージ例です。

コンパイラのイメージ例

コンパイラは、人間が解釈しやすい「高水準言語」を入力とし、コンピュータが解釈しやすい「低水準言語(機械語)」を出力します。

トランスコンパイラのイメージ例

それに対してトランスコンパイラは、例えば人間が解釈しやすい「高水準言語」を入力とした場合、別のプログラミング言語で書かれた「高水準言語」(同じ程度の水準のコード)を出力します。

上記図の例では、TypeScriptで書かれたソースコードを入力とし、JavaScriptのコードに変換して出力しています。

トランスコンパイラとクロスコンパイラの違い

クロスコンパイラとは、開発している環境(コンパイラが動作している環境)とは異なる環境(プラットフォーム)向けに実行可能なコードを生成するコンパイラのことです。

次の図は、クロスコンパイラのイメージ例です。

クロスコンパイラのイメージ図

家電製品に組み込まれたコンピュータで動作するコードをWindowsでコンパイルして生成しています。(Windowsで作成したコードを入力とし、家電製品のコンピュータで動くコードを出力する)

このように、別の環境で実行するためのコードに変換するのがクロスコンパイラ、別のプログラミング言語のコードに変換するのがトランスコンパイラです。