c++編譯器

c++編譯器

編譯器就是將“高級語言”翻譯為“機器語言(低級語言)”的程式。一個現代編譯器的主要工作流程:原始碼 (source code) → 預處理器 (preprocessor) →編譯器 (compiler) → 彙編程式 (assembler) → 目標代碼 (object code) → 連結器 (Linker) →可執行程式 (executables)。

簡介

c++編譯器是一個與標準化C++高度兼容的編譯環境。這點對於編譯可移植的代碼十分重要。編譯器對不同的CPU會進行不同的最佳化。

分類

GCC家族

Cygwin
Mingw32
DJGPP
Dev-C++(Mingw32)
還有正宗的GNU GCC 2.95.5~3.0.0.4版本
GNU C++
g++是一個開源的C++編譯器,GCC3.3對標準化C++的支持達96.15%。
值得一提的是,gcc是gnu c的編譯器, g++是gnu c++的編譯器, 而egcs(Enhanced GNU Compiler Suite)可以認為是gcc的改進版。目前gcc已經改名,從原來代表GNU C Compiler改變為代表GNU Compiler Collection。而MinGW或Cgywin,是在windows平台上的gnu c/c++編譯器,以及庫檔案,運行環境的集合。
在GCC家族中GNU GCC是根本,其它的編譯器版本都是從它導出的。其中,Cygwin和Mingw32都是WIN32平台下的編譯器,DJGPP是DOS下的32位編譯器。大家所熟知的DEV-C++充其量只是GCC的一個外殼,它所自帶的編譯器就是Mingw32的一個版本。這些GCC的版本中,Cygwin是最大的,它與其說是一個編譯器,倒不如說是一套編程工具。它不僅有編譯器,還有其它很多的工具。其實,它就是一個UNIX系統在WIN32平台上的實現。實現了大多常用的UNIX工具,最近的版本中連Apache這樣的“工具”都集成進來的。不過,Cygwin雖然功能強大,但它卻不是很易用(和UNIX相似,熟悉UNIX的人用它可以很快上手),因為太多其它的工具分散了人們的注意力。相比之下Mingw32就要好用得多,它只有最基本的幾個編程工具(只可惜它不自帶GDB)。GCC中並不只是C/C++編譯器,其中還有很多其它的編譯器如JAVA,Fortran,ADA等。它是一個編譯器集合,不過有些編譯器只能在UNIX系統上用。

MS家族

MSC 5.0、6.0、7.0
MSQC 1.0、2.5
MSVC 1.0、4.2、6.0、7.0
Visual C++
VC++6.0對標準化C++的兼容僅達83.43%。
它是Visual Studio、Visual Studio.net 2002、Visual Studio.Net 2003、Visual Studio.net 2005的後台C++編譯器。隨著Stanley Lippman等編譯器設計大師的加盟,它變得非常成熟可靠了。Visual C++ 7.1對標準C++的兼容性達到98.22%。

Borland家族

TC 1.0、2.0
TC++ 1.01、3.0
BC 3.0、3.1、4.0、4.5、5.0、5.02
BCB 3.0、5.0、6.0
Borland C++
該編譯以速度快、空間效率高而著稱。它的5.5版本對標準化C++的支持達92.73%,而官方稱100%符合ANSI/ISO的C++標準和C99標準。
它是Borland公司開發的,是Borland C++ Builder和Borland C++ Builder X這兩種IDE的後台編譯器。

其它

Intel C/C++ 5.0
Watcom C/C++ 11.0、11.0c
VectorC 1.3.3
IBM VisualAge for C++
DigitalMars C/C++
KAI C/C++ 4.03f for RedHat 7.2
Lcc4.1
LCC-WIN32 2001-09-25~2002-04-28日版
Small C
CC386
Pacific C
Intel C/C++大家一看名稱就知道是Intel的東西,它和VC6完全兼容,不過要掛在VC6下才能用。Watcom C/C++是早先編譯器四國大戰中的一員,原本是很不錯的東西,可惜戰略不對,現在已不見聲息了。倒是以它為基礎的一個OpenWatcom現在還在奮戰。VectorC是我近日才發現的一個好東東,它是個純C的編譯器。IBM的VisualAge for C++原本是IBM想用來淌C++編譯器這片渾水的東西,不過IBM的戰略改了,它就被放棄了。DigitalMars C/C++的前身的Symantec C++(它也是編譯器四國大戰中的一員),不過現在Symantec不做了,於是它的作者就把它改成了DigitalMars C/C++開放給大家使用。以上這些都是WIN32平台上的東西。KAI C/C++是個很強大的C/C++編譯器,它是個多平台的編譯器。不過現在被INTEL收購了,已經停止開發了。Lcc4.1是個純C的編譯器它是開放原始碼的。不過不怎么好用。LCC-WIN32是一個在LCC基礎上開發的C語言的集成開發環境,很好用,而且有很詳細的資料,FREE!Pacific C是一個純DOS的C的集成開發環境,就不多說了。Small C CC386都是開放原始碼的編譯器,它們都很簡單,套用來給大家學習編譯器的。

C的解釋器

Quincy
Eic
CInt
Quincy Eic CINT都是C的解釋器,是用來讓大家學習C語言的其中CINT的功能很強大,還支持一些C++的特性。

特色

VectorC

這個東西只支持純C。但它卻號稱是最快的編譯器,不過經過試驗,它的確在有些情況下強過其它編譯器很多!而且它還有個互動式的最佳化器,可以讓你直接看到C代碼對映的彙編代碼。

Cygwin和Mingw32

為一母所生,其運行效果相差不大。它們生成的代碼效率都很不錯,編譯的速度也很快,最值得一提的是它們對C++的特性的支持算是所有編譯器中最完全的,而且它們還支持C99的大部分特性。這一點很是不錯!

MSVC

大家對MS的VC已經很熟悉了,本不用我多說。不過在它的最新的產品VC7.0中,有很大的改進。它對C++的特性的支持比6.0有了很大的提高,是我所用的編譯器中是僅次於GCC的。而且它編譯出的程式,運行速度很快!僅有少數時候次於VectorC與GCC,其它情況都是最快的!其平均運行速度是最快的。

Borland

無需多說。它的TC2.0與BC3.1都是我最喜歡的東西。可是現在的BCB卻大不如前了,編譯的速度和VC6一樣慢!IDE還有較多的BUG。最令人想不通的是它生成的代碼的運行速度很慢,比LCC-WIN32還慢!它唯一值得一提的就是它的RAD做的比MS的好。

Intel

Intel的編譯器大家可能不熟,它太貴了!還要有VC的支持,很不划算,而且編譯速度比VC6還慢。不過它的代碼質量很不錯。

DigitalMars C/C++

沒有什麼亮點,編譯速度較快,代碼執行速度適中,對C++特性支持還算不錯。

LCC-WIN32

是個很不錯的集成開發環境,它只支持純C。它的編譯速度極快!代碼執行速度較慢。不過它的最大亮點在於它的IDE,在所有的FREE編程工具中,它的IDE是最專業的,有很強大的代碼分析,管理功能。而且它提供了大量的編程資料。

相關詞條

相關搜尋

熱門詞條

聯絡我們