LLVM
概要
LLVMは任意のプログラミング言語に対応することが可能なコンパイラ基盤である。
名前の由来は当初はLow Level Virtual Machineの略であったが、現在は何の頭文字でもないとされている。
詳細
LLVMは、JavaとJavaVMのように一旦仮想機械をターゲットとした中間コード(LLVM-IR)を生成し、そのコードをターゲットの機械語に変換する。こうすることで、コンパイル開発者は自作言語をLLVM-IRにコンパイルする部分(フロントエンドと呼ばれる)のみを書けばLLVMが対応するすべてのアーキテクチャにコンパイラを対応させることができる、というメリットがある。フロントエンドに対応し、LLVMの担当する機械語生成の部分をバックエンドと呼ぶこともある。また、コンパイル時・リンク時・実行時などあらゆる部分で最適化するように設計されていたり、他のLLVMで実装された言語とリンクすることができたりするという特徴がある。