Clang

Clang（類似英文單字clang）
是一個C、C++、Objective-C和Objective-C++程式語言的編譯器前端。它採用了LLVM作為其後端，由LLVM2.6開始，一起釋出新版本。它的目標是提供一個GNU編譯器套裝（GCC）的替代品，支援了GNU編譯器大多數的編譯設定以及非官方語言的擴充功能。作者是克里斯·拉特納（Chris Lattner），在蘋果公司的贊助支持下進行開發，而原始碼授權是使用類BSD的伊利诺伊大学厄巴纳-香槟分校開源碼許可。

Clang專案包括Clang前端和Clang靜態分析器等。

概述 
這個軟體專案在2005年由蘋果公司發起，是LLVM编译器工具集的前端（front-end），目的是输出代码对应的抽象语法树（Abstract Syntax Tree, AST），並將程式碼編譯成LLVM Bitcode。接著在後端（back-end）使用LLVM編譯成平台相关的機器語言
。Clang支持C、C++、Objective C。

在Clang語言中，使用Stmt来代表statement。Clang程式碼的单元（unit）皆為语句（statement），语法树的节点（node）类型就是Stmt。另外Clang的表达式（Expression）也是語句的一種，Clang使用Expr來代表Expression，Expr本身繼承自Stmt。节点之下有子节点列表（sub-node-list）。

Clang本身性能優異，其生成的AST所耗用掉的内存僅僅是GCC的20%左右。FreeBSD操作系统自2014年1月發行的10.0版本开始将Clang/LLVM作为默认编译器。

效能
測試證明Clang编译Objective-C代码时速度为GCC的3倍，還能針對使用者發生的編譯錯誤准确地给出建议。

版本歷史 
這個表格只記錄了Clang歷史中特別的階段與版本

參考文獻

外部連結

LLVMdev: New LLVM C front-end: "clang", announcement（11 July 2007）
Presentation: Ted Kremenek - Finding Bugs with the Clang Static Analyzer, Slides
Presentation: Steve Naroff - Clang Internals, Slides
2009 DevMtg Clang presentation

C編譯器
C++編譯器
静态代码分析工具