Clang
概要

LLVM(Low Level Virtual Machine)ではコンパイラの役割が「フロントエンド」と「バックエンド」に分かれており、Clangはフロントエンドとしてソースコードの字句解析・構文解析・意味解析を行い、LLVMの内部的な中間表現(IR:Intermediate Representation)を生成する。
この中間表現をLLVMバックエンドが受け取り、x86やARM、RISC-Vなど各CPUアーキテクチャ向けのネイティブコードを生成する。フロントエンドとバックエンドが分離しているため、単一のコードで様々な機種に対応でき、新しいハードウェアアーキテクチャへの対応を追加しやすい。
古くから存在する有力なコンパイラ「gcc」(GNU Compiler Collection)と比べると、コンパイル速度が比較的速く、モジュール機能やプリコンパイルヘッダなどを活用することで大規模プロジェクトのビルド時間を短縮できる。エラーメッセージや警告メッセージの表示も詳細で読みやすいとされる。
オープンソースとして公開されており、LinuxやWindows、macOSなど様々な環境で利用できる。macOSとiOS向けの開発では米アップル(Apple)社がClangをXcodeのデフォルトコンパイラとして採用しており、Objective-CおよびSwiftのコンパイルにも使用されている。FreeBSDもシステムのデフォルトコンパイラをgccからClangに移行している。
静的解析ツールの「Clang Static Analyzer」や、C++言語のコードフォーマッタである「clang-format」、コード補完や定義ジャンプなどの言語サーバ機能を提供する「clangd」もClangを基盤としており、IDEやエディタのC++対応機能として広く使われている。