亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

LLVM 與 Clang 介紹 — LinuxTOY

系統(tǒng) 2901 0

LLVM 與 Clang 介紹 — LinuxTOY

LLVM 是 Low Level Virtual Machine
的簡稱,這個庫提供了與編譯器相關(guān)的支持,能夠進行程序語言的編譯期優(yōu)化、鏈接優(yōu)化、在線編譯優(yōu)化、代碼生成。簡而言之,可以作為多種語言編譯器的后臺來使用。如果這樣還比較抽象的話,介紹下 Clang 就知道了:Clang 是一個 C++ 編寫、基于 LLVM、發(fā)布于 LLVM BSD 許可證下的
C/C++/Objective C/Objective C++ 編譯器,其目標(biāo)(之一)就是超越 GCC。 ?

Clang 開發(fā)事出有因,Wiki 介紹如下:

Apple 使用 LLVM 在不支持全部 OpenGL 特性的 GPU (Intel 低端顯卡) 上生成代碼 (JIT),令程序仍然能夠正常運行。之后 LLVM 與 GCC 的集成過程引發(fā)了一些不快,GCC 系統(tǒng)龐大而笨重,而 Apple 大量使用的 Objective-C 在 GCC 中優(yōu)先級很低。此外 GCC 作為一個純粹的編譯系統(tǒng),與 IDE 配合很差。加之許可證方面的要求,Apple 無法使用修改版的 GCC 而閉源。于是 Apple 決定從零開始寫 C family 的前端,也就是基于 LLVM 的 Clang 了。

Clang 的特性:

  1. 快:通過編譯 OS X 上幾乎包含了所有 C 頭文件的 carbon.h 的測試,包括預(yù)處理 (Preprocess),語法 (lex),解析 (parse),語義分析 (Semantic Analysis),抽象語法樹生成 (Abstract Syntax Tree) 的時間,Clang 是 Apple GCC 4.0 的 2.5x 快。(2007-7-25)
  2. 內(nèi)存占用小:Clang 內(nèi)存占用是源碼的 130%,Apple GCC 則超過 10x。
  3. 診斷信息可讀性強:我不會排版,推薦去 網(wǎng)站 觀看。其中錯誤的語法不但有源碼提示,還會在錯誤的調(diào)用和相關(guān)上下文的下方有~~~~~和^的提示,相比之下 GCC 的提示很天書。
  4. GCC 兼容性。
  5. 設(shè)計清晰簡單,容易理解,易于擴展增強。與代碼基礎(chǔ)古老的 GCC 相比,學(xué)習(xí)曲線平緩。
  6. 基于庫的模塊化設(shè)計,易于 IDE 集成及其他用途的重用。由于歷史原因,GCC 是一個單一的可執(zhí)行程序編譯器,其內(nèi)部完成了從預(yù)處理到最后代碼生成的全部過程,中間諸多信息都無法被其他程序重用。Clang 將編譯過程分成彼此分離的幾個階段,AST 信息可序列化。通過庫的支持,程序能夠獲取到 AST 級別的信息,將大大增強對于代碼的操控能力。對于 IDE 而言,代碼補全、重構(gòu)是重要的功能,然而如果沒有底層的支持,只使用 tags 分析或是正則表達(dá)式匹配是很難達(dá)成的。

當(dāng)然,GCC 也有其優(yōu)勢:

相信介紹到這里大家能夠?qū)?Clang 和 LLVM 有所了解了。除去 Clang 之外,LLVM
還被用在 Gallium3D 中進行 JIT 優(yōu)化,Xorg 中的 pixman 也有考慮使用 LLVM
來優(yōu)化執(zhí)行速度, llvm-lua 使用 LLVM 來編譯
Lua 代碼, gpuocelot 使用 LLVM 可以令 CUDA 程序無需重新編譯即可運行在多核 X86CPU、IBM Cell、支持 OpenCL 的設(shè)備之上...
我個人感覺 Apple 在開源界口碑較差(也許是我的錯覺?),不過 Apple 也為開源界貢獻(xiàn)了不少,Webkit,OpenCL(雖說只是個標(biāo)準(zhǔn)),Clang。我最為佩服的是雖然出身于命令行之上的 Unix 族系統(tǒng),但有魄力寫出自成體系的圖形棧,其圖形界面優(yōu)美而人性化,可謂也為開源界貢獻(xiàn)了自己的精神與思想。
對于 Clang 這個很有潛力的項目,我希望其 C++ 支持(尤其是 template 支持)能夠早日完善。因為 GCC 在 template 出錯時的診斷信息如同小說一般...

{ Thanks guest. }

LLVM 與 Clang 介紹 — LinuxTOY


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 美美女高清毛片视频黄的一免费 | 国产成人啪一区二区 | 高清在线精品一区二区 | 成人久久 | 久操免费在线视频 | 国产精品日韩欧美一区二区三区 | 四虎成人免费观看在线网址 | 久久国产精品亚洲综合 | 黄色成人免费网站 | 天天色综合5 | 国产或人精品日本亚洲77美色 | 亚洲国产精品线观看不卡 | 农村三级孕妇视频在线 | 国产一区二区三区不卡免费观看 | 色八戒国产一区二区三区四区 | 91福利视频在线 | 九九热九九热 | 免费看美女吃男生私人部位 | 久草婷婷在线 | 精品久久一区二区三区 | 久久www免费人成高清 | 777福利| 人人爽天天爽夜夜爽qc | 国产国语videosex| 欧美狠狠干 | 成人国产在线不卡视频 | 免费xxx| 亚洲精品久久午夜香蕉 | 欧美性猛交aa一级 | 成人xxxx| 色综合久久一区二区三区 | 欧美日韩无线码在线观看 | 国产成人在线免费 | 四虎国产精品视频免费看 | 男女拍拍视频黄的全免费 | 福利在线视频观看 | 久久女同互慰一区二区三区 | 国产精品亚洲精品一区二区三区 | 狠狠躁天天躁夜夜躁婷婷 | 四虎影视成人 | 无遮挡一级毛片呦女视频 |