咱們在iOS調試中常常會看到Clang這個,那麼Clang究竟是什麼呢?咱們來簡單瞭解一下。html
Clang是一個C、C++、OC語言的輕量級編譯器。源代碼發佈於BSD協議下。Clang是由C++編寫,基於LLVM,發佈於LLVM BSD許可證下的編譯器。它與GNU C語言規範幾乎徹底兼容,並增長了額外的特性。前端
那麼來比較一下Clang和GCC。Clang編譯速度更快,編譯產出更小、出錯提示更友好。clang採用的是BSD協議,這是蘋果資助LLVM、FreeBSD淘汰GCC換用Clang的重要緣由。後端
Low Level Virtual Machine(LLVM)是一個開源的編譯器架構,Clang是LLVM的一個編譯器前端。因爲優秀的設計,使得Clang很是適合用於開發源代碼級別的分析工具。Clang對源程序進行語法分析和語義分析,並將分析結果轉換爲Abstract Syntax Tree(抽象語法樹),最後使用LLVM做爲後端代碼的生成器。Clang的開發目標是提供一個能夠替代GCC的前端編譯器。因爲GNU編譯器套裝(GCC)系統龐大,並且Apple大量使用的OC在GCC中優先級較低,同時GCC做爲一個純粹的編譯系統,與IDE配合並不優秀。Clang由Apple公司開發,源代碼受權使用BSD的開源受權。架構
LLVM(底層虛擬機)是編譯器框架系統,用C++編寫而成。在Xcode中已經集成了LLVM。在這裏,我爲你們推薦一篇相關的優秀的文章 http://www.360doc.com/content/12/0326/21/7936054_198066001.shtml 。和你們共享一下。框架