clang
概要編集
2007年、gccのライセンスがGPL v2からGPL v3に変更された[1]。このライセンスはBSDライセンスとは相慣れないものでありBSD界隈は絶望に暮れた。そのためFreeBSDやOpenBSDなどではGPL v2時代の古いgccを使い続けてきた。
そこへ颯爽と発表されたのがBSDライセンスの亜種を採用したclangとLLVMであった。滅亡の危機に瀕していたBSD原理主義者たちは歓喜し、急激にその完成度を高め、現在のかたちとなった。
clangプロジェクトの傘下にLLVMというサブプロジェクトを持っていたが、現在(LLVM2.6以降)では立場が逆転しLLVMの一部としてclangがリリースされている。
clangでコンパイルを行うとLLVM向けの中間言語が出力され、LLVMからネイティブコードが出力される。このため「clangはコンパイラフロントエンド」と呼ばれることも多い。しかしながらclangを利用するプログラマはclang(フロント)とLLVM(バック)を意識する必要はほとんどないため、小難しいことは考えずに普通のコンパイラだと考えてよい。
FreeBSDは標準のコンパイラとして採用している。また、FreeBSDから派生したMac OS XおよびiOSではclangでも標準のコンパイラとなっている。