1. 程式人生 > >Clang、LLVM與GCC介紹

Clang、LLVM與GCC介紹

先解釋下ClangLLVMGCC

  • LLVM :命名最早源自於底層虛擬機器(Low Level Virtual Machine)的縮寫。LLVM 核心庫提供了與編譯器相關的支援,可以作為多種語言編譯器的後臺來使用。能夠進行程式語言的編譯期優化、連結優化、線上編譯優化、程式碼生成。LLVM的專案是一個模組化和可重複使用的編譯器和工具技術的集合。

  • Clang:是 LLVM 的一個編譯器前端,它目前支援 C, C++, Objective-C 以及 Objective-C++ 等程式語言。Clang 對源程式進行詞法分析和語義分析,並將分析結果轉換為 Abstract Syntax Tree ( 抽象語法樹 ) ,最後使用 LLVM 作為後端程式碼的生成器。

  • GCC:GNU編譯器套件(GNU Compiler Collection)包括C、C++、Objective-C、Fortran、Java、Ada和Go語言的前端,也包括了這些語言的庫(如libstdc++、libgcj等等)。GCC的初衷是為GNU作業系統專門編寫的一款編譯器。GNU系統是徹底的自由軟體。此處,“自由”的含義是它尊重使用者的自由。