Clang:LLVM的C语言家族前端
Clang:LLVM的C語言家族前端
Clang項(xiàng)目為LLVM 項(xiàng)目的C語言家族(C,C ++,Objective C / C ++,OpenCL,CUDA和RenderScript)中的語言提供了語言前端和工具基礎(chǔ)結(jié)構(gòu)。提供了GCC兼容的編譯器驅(qū)動(dòng)程序(clang)和MSVC兼容的編譯器驅(qū)動(dòng)程序(clang-cl.exe)。可以立即獲取并構(gòu)建源。
特點(diǎn)和目標(biāo)
該項(xiàng)目的一些目標(biāo)包括:
最終用戶功能:
? 快速編譯和低內(nèi)存使用
? 表達(dá)診斷(示例)
? GCC兼容性
實(shí)用程序和應(yīng)用程序:
? 基于模塊化庫的架構(gòu)
? 支持各種客戶端(重構(gòu),靜態(tài)分析,代碼生成等)
? 允許與IDE緊密集成
? 使用LLVM’Apache 2’許可證
內(nèi)部設(shè)計(jì)與實(shí)現(xiàn):
? 真實(shí)的,production quality compiler產(chǎn)品質(zhì)量的編譯器
? 一個(gè)簡單易學(xué)的代碼庫
? 適用于C,Objective C,C ++和Objective C ++的單個(gè)統(tǒng)一解析器
? 與C / C ++ / ObjC及其變體的一致性
當(dāng)然,這只是Clang的目標(biāo)和功能的粗略概述。要真正了解它的全部含義,請參閱“功能”部分,其中詳細(xì)介紹了每個(gè)功能,并對其進(jìn)行了詳細(xì)說明。
為什么?
新前端的開發(fā)是從對編譯器的需求開始的,該編譯器需要更好的診斷,與IDE的更好集成,與商業(yè)產(chǎn)品兼容的許可證以及易于開發(fā)和維護(hù)的靈活編譯器。所有這些都是在可以滿足這些需求的新前端上開展工作的動(dòng)機(jī)。
當(dāng)前狀態(tài)
當(dāng)針對X86-32,X86-64和ARM時(shí),Clang被認(rèn)為是產(chǎn)品質(zhì)量的C,Objective-C,C ++和Objective-C ++編譯器(其它目標(biāo)可能會(huì)有警告,但通常很容易解決)。例如,在產(chǎn)品中使用Clang來構(gòu)建對性能至關(guān)重要的軟件,例如Chrome或Firefox。
如果正在尋找源分析或源到源轉(zhuǎn)換工具,那么Clang可能是理想選擇。Clang支持C ++ 11,C ++ 14和C ++ 17,請參閱C ++狀態(tài)頁面以獲取更多信息。
總結(jié)
以上是生活随笔為你收集整理的Clang:LLVM的C语言家族前端的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LLVM编译器架构
- 下一篇: “ compiler-rt”运行时run