<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          clangC/C++編譯器

          聯(lián)合創(chuàng)作 · 2023-10-01 11:01

          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 分析或是正則表達式匹配是很難達成的。
          瀏覽 20
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲人成电影网 | 日韩一级片免费在线观看 | A片网站在线观看 | 体内射精一区二区三区在线视频 | 一级肏逼网 |