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

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

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

仮想機械のコンパイルにおいて、JITコンパイラが普及しているため、区別するためAOTコンパイラという言葉が使われるが、C言語やC++など、AOTコンパイラが当たり前の言語では、わざわざAOTをつけずに単にコンパイラと呼ばれることがほとんどである。
Q47506
コンパイラ
Concept
Q251
Java
Concept
Q837330
バイトコード
Concept
Q263544
CIL
MEDIA
Q466308
System/38
MISC
Q433406
System i
MISC
Q192726
仮想機械
Concept
Q2663110
中間言語
Concept
Q110546
実行時コンパイラ
Concept
Q110546
実行時コンパイラ
Concept
Q192726
仮想機械
Concept
Q273190
SPARC
MISC
Q400185
事前コンパイラ
Concept
2038-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
38
DATE
1986-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
86
DATE
+38^^http://www.w3.org/2001/XMLSchema#decimal
38
NUMBER
+86^^http://www.w3.org/2001/XMLSchema#decimal
86
NUMBER
subclass of
influenced by
replaces