在DOS集成開發環境中,Watcom C/C++ 編譯器以編譯后的exe運行高速而著稱,且首個支持英特爾 80386 "保護模式"的編譯器。于90年代中期,大批的雄心技術游戲(例如 Doom、Descent、Duke Nukem 3D)都以 Watcom C 寫成。
基本介紹
Watcom C/C++ 編譯器、Watcom Fortran 編譯器已經不在其先前所屬公司sybase售賣,而被 SciTech 軟件公司作為 Open Watcom 開源包發行。類似于其他的開源編譯器(例如 [GCC])項目,Watcom C代碼小而便攜,其編譯器后端(代碼生成器)的目標碼可變。該編譯器可在dos、OS/2、Windows等操作系統上運行,并生成各種可運行的(不必是該操作系統的)代碼。該編譯器支持Novell NetWare的NLM目標碼。目前正進行為Linux、modern BSD (例如FreeBSD)操作系統重定目標碼,以便在x86、PowerPC及其它處理器上運行。Open Watcom C/C++的1.4版于2005年12月發行,采用Linux x86為實驗目標,支持NT、OS/2等host平臺。曾有某被棄置的QNX版本,但其編譯所需的庫并未開源發行。當前最近的穩定版是1.9版,在2010年6月發行。
Open Watcom的C語法兼容其他(例如微軟、Borland)編譯器,對“_asm”標識符支持(for instance)略有不同。其他編譯器能對付的C代碼Watcom也能對付,而且質量更優、效率更高。
Open Watcom C/C++的許可證雖然被開源促進會批準為開源許可證,但Debian、fedora和自由軟件基金會已拒絕該許可證,因為它要求在“部署”受涵蓋軟件時公開發布源代碼,而“部署”的定義包括許多類型的私有使用。
發展歷程
Open Watcom C/C++作為一款商業產品,直到停產后,根據sybase Open Watcom公共許可證以Open Watcom C/C++的名義發布。分叉版本2.0 beta已經發布,支持64位主機(Windows和Linux)、內置文本編輯器、兩階段構建系統,并且DOS版本支持長文件名(LFN)。Open Watcom Wiki提供了全面的歷史記錄。
設計特點
Open Watcom C/C++的設計使得它可以由DOS、OS/2、Windows、Linux操作系統操作,并為這些操作系統生成可執行代碼。它還支持Novell NetWare的NLM目標,并且正在進行的工作旨在將目標范圍擴展到運行在x86、PowerPC和其他處理器上的Linux和現代BSD操作系統。該代碼是可移植的,并且編譯器后端是可以重新定向的。
應用實例
除了在20世紀90年代中期的一些技術上最具野心的DOS電腦游戲外,Open Watcom C/C++還被用于在2015年將游戲《逆城暴走》移植到DOS。VirtualBox使用它來編譯BIOS。FreeDOS的當前開發要求所有C源代碼都必須能夠被Open Watcom C編譯。Open Watcom是推薦的OS/2基礎的ArcaOS操作系統的應用程序和驅動程序開發編譯器。
語言標準支持
Open Watcom C/C++默認支持C89/C90標準,并支持與C99標準的部分兼容性。它實現了C99標準中最常用的部分,但這些特性僅通過未記錄的命令行開關“-za99”啟用。三個C99特性已作為C90擴展打包,自pre-v1.0以來:C++樣式注釋(//)、靈活數組成員、枚舉聲明中允許尾隨逗號。該編譯器目前不支持任何新的主要C11特性,但C庫確實包含“安全C”函數,這些在ISO/IEC TR 24731-1中指定,在C11中稱為“邊界檢查接口(附件K)”。一些函數名稱示例包括strcpy_s()、memcpy_s()、printf_s()。此庫隨Open Watcom 1.5于2006年4月發布。
發行歷史
參考資料 >