1. 程式人生 > >走進程式設計:C++的發展歷史

走進程式設計:C++的發展歷史

C++程式語言走到今天已經有將近40年的歷史了,那麼我們今天就來看看這個發展歷程,看我們從一代又一代的C++標準之中能發現什麼祕密吧!我們走進C++的世界······

C++的歷史可以追溯到1979年,當時Bjarne Stroustrup(譯者注:C++之父)正在準備他的博士畢業論文,他有機會使用一種叫做Simula 的語言。顧名思義,Simula語言的主要作用是模擬。Simula 67是Simula語言的一種變種,被公認是首款支援面向物件的語言。Stroustrup發現面向物件的思想對於軟體開發非常有用,但是因Simula語言執行效率低,其實用性不強。

不久之後,Stroustrup開始著手“C with Classes”的研發工作,“C with Classes”表明這種新語言是在C基礎上研發的,是C語言的超集。C語言以其高可移植性而廣受好評,且程式執行速度以及底層函式的效能不受程式移植的影響,Stroustrup要做的就是將面向物件的思想引入C語言。新語言的初始版本除了包括C語言的基本特徵之外,還具備

、簡單繼承內聯機制、函式預設引數以及強型別檢查等特性。

Bjarne Stroustrup的第一款“C with classes”編譯器叫Cfront,這個名字源自一個叫做Cpre的C編譯器。Cfront的機理是把“C with classes”的程式碼翻譯成原生C程式碼。頗為有趣的一點是Cfront原始碼大部分是由“C with Classes”編寫,這使得Cfront成為了一種自足執行的編譯器(可以編譯自身原始碼的編譯器)。由於很難整合C++的異常機制,Cfront在1993年退出了歷史的舞臺,但是它對以後C++編譯器以及Unix作業系統的實現都產生了深遠的影響。

1983年,“C with Classes”語言更名為C++。C語言中“++”運運算元的作用是對一個變數進行遞增操作,由此我們多少可以知曉Stroustrup對這種新語言的定位。這個時期,許多重要的特性被加入,其中包括

虛擬函式函式過載、引用機制(符號為&)、const關鍵字以及雙斜線的單行註釋(從BCPL語言引入)。

1985年,Stroustrup的C++參考手冊《C++ Programming Language》出版,同年,C++的商業版本問世。由於當時C++並沒有正式的語言規範,因此《C++ Programming Language》成了業界的重要參考。1989年,C++再次版本更新,這次更新引入了多重繼承、保護成員以及靜態成員等語言特性。

1990年,《Annotated C++ Reference Manual》釋出,同年,Borland公司的商業版Turbo C++編譯器問世。Turbo C++附帶了大量函式庫,這一舉措對C++開發產生了極為深遠的影響。雖然Turbo C++上一個穩定的版本釋出於2006年,但當前該編譯器仍被廣泛使用。

1998年,C++標準委員會發布了C++語言的第一個國際標準—ISO/IEC 14882:1998,該標準即為大名鼎鼎的C++98。C++98的提出,《The Annotated C++ Reference Manual》功不可沒。同時,1979年開始研發的標準模板庫(Standard Template Library,STL)也被納入了該版標準中。2003年,標準委員會針對98版本中存在的諸多問題進行了修訂,修訂後釋出了C++03

2005年,C++標準委員會發布了一份技術報告(Technical Report,TR1)詳細說明了計劃引入C++的新特性。這個新標準被非正式地命名為C++0x,因為其預計會在本世紀第一個十年的某個時間釋出。諷刺的是,直到2011年年中該標準才面世,相應的技術文件也隨之出爐,一些編譯器廠商也開始試驗性地支援這些新特性。

2011年中,新的C++標準(C++11)面世。Boost庫對該版本影響很大,一些新的模組甚至直接衍生於Boost中相應的模組。一些新的語言特性,包括正則表示式(正則表示式詳情)、完備的隨機數生成函式庫、新的時間相關函式,原子操作支援、標準執行緒庫(2011之前,C和C++語言均缺少對執行緒的支援)、一種能夠和某些語言中foreach語句達到相同效果的新的for語法、auto關鍵字、新的容器類、更好的union支援、陣列初始化列表的支援以及變參模板的支援等等。

2014年8月18日,經過C++標準委員投票,C++14標準獲得一致通過。C++14標準是‘ ISO/IEC 14882:2014 Information technology -- Programming languages -- C++’ 的簡稱 。在標準正式通過之前,原名C++1y。C++14標準的委員會草案N3690於2013年5月15日發表。草案文件經過一定的文字潤色和修正之後,將在年內提交給ISO作為正式的C++標準釋出。

C++17 是繼 C++14 之後,C++ 程式語言 ISO/IEC 標準的下一次修訂的非正式名稱。而就在2017-12-5,ISO C++ 委員會正式釋出了 C++ 17 標準,官方名稱為 ISO/IEC 14882:2017。基於 C++ 11,C++ 17 旨在使 C++ 成為一個不那麼臃腫複雜的程式語言,以簡化該語言的日常使用,使開發者可以更簡單地編寫和維護程式碼。

C++20我們都知道快要面世了!但是具體訊息我們還是要等官方釋出,我們靜候佳音吧!相信不會讓我們失望的!

                                            有興趣學習c/c++的小夥伴可以加群:941636044 一起學習