クロスコンパイラ
新たなプラットフォーム向けのブートストラッピング。新しいプラットフォーム向けにソフトウェアを開発する場合や将来のプラットフォームのエミュレータについて、クロスコンパイラでOSやネイティブのコンパイラといった必要なツールをコンパイルする。
JavaのJVMのような仮想機械を使うことで、クロスコンパイラを開発する動機となっている問題の一部は解決される。仮想機械は、1つのコンパイラの出力を複数の異なるシステムで利用可能にする。
典型的にはアーキテクチャが異なればクロスコンパイラを利用することになる(例えば、MIPSアーキテクチャ向けのプログラムをx86上でコンパイルするなど)。しかしそれだけでなく、OS環境が違うだけであってもクロスコンパイラが使われ、例えばLinux上でFreeBSD用の実行ファイルを作るといった利用が考えられる。さらには、システムライブラリが違う環境向けのクロスコンパイルもある(glibcホスト上でuClibcを使ったコンパイルをするなど)。