1. 程式人生 > >C++——發展歷史

C++——發展歷史

該文由http://www.cplusplus.com/info/history/  網站《History of C++》翻譯。

c++程式語言的歷史可以追溯到1979年,當時Bjarne Stroustrup正在寫他的博士論文。Stroustrup有機會使用的一種語言是Simula語言,顧名思義,Simula是一種主要用於模擬的語言。Simula 67語言——Stroustrup使用的變體——被認為是支援面向物件程式設計的第一種語言。Stroustrup發現這個範例對於軟體開發非常有用,但是Simula語言對於實際使用來說太慢了。

    此後不久,他開始研究“帶類的C”,顧名思義,它是C語言的超集

。他的目標是將面向物件程式設計新增到C語言中,C語言過去和現在都因其可移植性而備受推崇,同時又不犧牲速度和低階功能。除了C語言的所有特性之外,他的語言還包括類、基類繼承、內聯、預設函式引數和強型別檢查。

    第一個帶有類編譯器的C被稱為Cfront,它來自於一個名為CPre的C編譯器。它是一個用類程式碼將C語言翻譯成普通C語言的程式。值得注意的一點是Cfront大部分是用C語言編寫的,這使得它成為了一個自託管編譯器(一個可以自己編譯的編譯器)。Cfront後來在1993年被拋棄,因為很難將新的特性整合到其中,即c++異常。儘管如此,Cfront對未來編譯器的實現和Unix作業系統產生了巨大的影響。

    在1983年,這種語言的名字從C類被改成了c++。在C語言中,++運算子是用於遞增變數的運算子,這可以深入瞭解Stroustrup是如何看待語言的。大約在這個時候添加了許多新特性,其中最引人注目的是虛擬函式、函式過載、帶&符號的引用、const關鍵字和使用兩個前斜槓的單行註釋(這是從BCPL語言中提取的特性)。

    1985年,Stroustrup提到了名為c++程式語言的語言。同年,c++作為商業產品實現。語言還沒有正式標準化,這使得這本書成為一個非常重要的參考。該語言於1989年再次更新,包括受保護成員和靜態成員,以及來自幾個類的繼承。

    在1990年,註釋的c++參考手冊釋出。同年,Borland的Turbo c++編譯器將作為商業產品釋出。Turbo c++增加了大量的額外庫,這將對c++的開發產生相當大的影響。雖然Turbo c++的最後一個穩定版本是在2006年,但是編譯器仍然被廣泛使用。

    1998年,c++標準委員會發布了c++ ISO/IEC 14882:1998的第一個國際標準,也就是所謂的c++ 98。註釋的c++參考手冊據說對標準的開發有很大的影響。標準模板庫從1979年開始概念開發,也包括在內。2003年,委員會對1998年標準報告的多個問題作出了迴應,並對其進行了相應的修訂。更改後的語言被稱為c++ 03

    2005年,c++標準委員會發布了一份技術報告(TR1),詳細描述了他們計劃新增到最新的c++標準中的各種特性。新標準被非正式地稱為c++ 0x,因為它預計將在第一個十年結束前的某個時候釋出。然而,具有諷刺意味的是,新標準要到2011年年中才會發布。在此之前釋出了一些技術報告,一些編譯器開始為新特性新增實驗支援。

    2011年年中,新的c++標準(被稱為c++ 11)完成。Boost庫專案對新標準產生了相當大的影響,一些新模組直接來自相應的Boost庫。一些新特性包括正則表示式支援(正則表示式的細節可以在這裡找到),一個全面的隨機化圖書館,一個新的c++庫,原子的支援,一個標準的執行緒庫(直到2011 C和c++都缺乏),一個新的迴圈語法提供功能類似於某些其他語言foreach迴圈,auto關鍵字,新的容器類,更好地支援union聯合體和陣列初始化列表,和可變模板。

    以上是由Albatross所寫。