事前コンパイラ

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。VolkovBot (会話 | 投稿記録) による 2011年1月4日 (火) 22:52個人設定で未設定ならUTC)時点の版 (r2.5.1) (ロボットによる 変更: ru:AOT-компиляция)であり、現在の版とは大きく異なる場合があります。

事前コンパイラ (Ahead-Of-TimeコンパイラAOTコンパイラ)とは、アプリケーション実行前に事前にコンパイルするコンパイラのこと。主に、Javaバイトコード、.NET CIL、IBM System/38System i の "Technology Independent Machine Interface" コードといったシステムから独立した(プロセス仮想機械)のバイナリである中間言語のコンパイルで使われる言葉である。対義語は、実行時コンパイラ(Just-In-Timeコンパイラ、JITコンパイラ)。

プロセス仮想機械の中間言語のコンパイル方式としては実行時コンパイラ (JITコンパイラ) が性能強化手段としてよく知られている。これは大まかに言えば、実行中に中間言語コードをネイティブの機械語コードにコンパイルするもので、場合によってはアプリケーション性能を低下させることもある。AOTコンパイラは実行時のコンパイルの必要を無くし、ソースコードから中間言語コードを生成した後に、ネイティブの機械語コードも生成してしまう方式である。

Java仮想機械においては、最初の段階から、x86とSPARCの両方でアプリケーションが動くことが重視されていたため、CPUから独立な中間コードの形態でアプリを配布し、実行時にCPUネイティブのコードに変換する手法がとられた。

仮想機械のコンパイルにおいて、JITコンパイラが普及しているため、区別するためAOTコンパイラという言葉が使われるが、C言語やC++など、AOTコンパイラが当たり前の言語では、わざわざAOTをつけずに単にコンパイラと呼ばれることがほとんどである。

関連項目

外部リンク

.NET
Java