c 編譯器大全


c 編譯器大全

看了下nginx的auto/cc下的目錄,nginx對多種c語言的編輯器都進行了支持。才知道c語言有那么多編輯器。

編譯器原理

所謂編譯器,就是執行下面的三步驟:
1 將目標語言轉換為AST抽象語法樹
2 優化抽象語法樹
3 將抽象語法樹轉化為適用於各個系統架構的指令集

各種編譯器

acc

HP aC++ compiler, 指的是HP C/aC++ 開發者工具包中包含的編譯器,特指HP C/ANSI C compiler編譯器。

它主要是在惠普服務器上運行的。 HP Integrity 和 HP 9000 服務器上運行的 HP-UX 操作系統上的編譯器。HP-UX 是基於System V,是Unix的一個變種。惠普服務器支持范圍從入門級商業應用到大規模服務器應用, 比如SAP軟件就有搭建在 HP-UX 操作系統之上的。

bcc

Borland C++ compiler,是MS-DOS 和 Microsoft Windows的編譯器。Turbo C/C++的進化版

ccc

Compaq C compiler, 如其名,康柏電腦公司的C編譯器,比如操作系統Tru64 UNIX就是使用這種編譯器。

clang

Clang C compiler,Clang的C語言編譯器。Clang是一個支持C,C++,OC,OC++四種C家族編程語言的編譯器。它的目標就是為蘋果提供提供基於LLVM的GNU編譯套裝(GCC)的替代品。我們現在的mac電腦就是使用這個編譯器。

最早之前蘋果的編譯器完全繼承UNIX,使用的是GNU編譯套件,后來,編譯后端(將生成的AST數優化,並且生成適用於各個系統架構的指令集合)。蘋果使用LLVM將編譯優化和編譯后端全部統一了。但是前端還是GCC,所以有一段時間是GCC+LLVM的組合。但是后來Clang創建之后,就是使用Clang+LLVM的組合了。現在Apple的所有語言都是基於這個組合了。

gcc

GNU C compiler。GNU就是最著名的Unix的編譯器了。最早的時候叫做GNU C編譯器,早於1984年,每一個類Unix操作系統都需要一個C編譯器來讓程序員可以用高級語言C來寫程序。當時沒有免費的編譯器,所以GNU項目從頭開發了一個編譯器。1987年GCC的第一個版本發布。1992年,增加了對C++語言的支持。而后,支持了更多的語言,所以GCC這個縮寫由原先的GNU C Compiler變化成為了GNU Compiler Collection。

icc

Intel C++ compiler。 如名,icc是Intel的編譯器團隊創建出來的。主要目標當然很明顯,就是為了在程序在Intel處理器下的優化。但是很多人反饋,icc在amd下的性能比較慢,而且bug很多。而且是收費的。

msvc

Microsoft Visual C++ compiler。 Microsoft Visual C++是微軟公司的C++開發工具,具有集成開發環境,可提供編輯C語言,C++以及C++/CLI等編程語言。VC++集成了便利的除錯工具,特別是集成了微軟Windows視窗操作系統應用程序接口(Windows API)、三維動畫DirectX API,Microsoft .NET框架。目前最新的版本是Microsoft Visual C++ 2017。

owc

Open Watcom C compiler。這是一個加拿大公司Watcom出品的C/C++的編譯器,在DOS下能夠產生最佳的程序代碼。很多寫有些的廠商都使用Watcom C/C++來編譯程序。

后來Watcom C compiler也推出了Windows平台的C/C++開發工具。

稍后Watcom C/C++被Sybase並購,成為Sybase的Optima++的前身。

sunc

Sun C compiler。就是Sun公司創建的C編譯器。在Sun OS / Solaris上,Sun Pro / Sun Workshop / Sun Studio里的Sun C/C++/Fortran編譯器是主流。

參考文檔

http://yuxiaopeng.com/2016/08/compiler/
http://www.vienta.me/2014/06/11/你或許應該知道的LLVM/
https://cxd2014.gitbooks.io/an_introduction_to_gcc/content/1_jian_jie/11_gccde_li_shi.html
https://www.zhihu.com/question/21675828
https://www.zhihu.com/question/39661628


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM