簡述c++ 發展史
C++是一門以C為基礎發展而來的一門面向物件的高階程式設計語言,從1983年由Bjarne Stroustrup教授在貝爾實驗室創立開始至今,已有30多個年頭。C++從最初的C with class,經歷了從C++98、C++ 03、C++ 11、C++ 14再到C++17多次標準化改造,功能得到了極大的豐富,已經演變為一門集面向過程、面向物件、函式式、泛型和超程式設計等多種程式設計正規化的複雜程式語言,入門具有一定的難度。由於C++過於複雜,並且經歷了長時間的發展演變,目前對於C++標準支援的較好主要有GNU C++和Visual C++,嚴格來說,目前還沒有一個完全支援ISO C++的版本。
1954年,John Backus發明了世界上第一種計算機高階語言Fortran,為之後出現的高階程式語言奠定了基礎。1970年,AT&T的Bell實驗室的 Ken Thompson,以BCPL語言為基礎,設計出簡單且接近硬體的B語言(取BCPL的首字母),並且他用B語言寫了第一個Unix作業系統。到了1972年,Bell實驗室的Dennis Ritchie和Ken Thompson共同發明了C語言,並使用C重寫Unix。1979年,Bjame Stroustrup到了Bell實驗室,開始從事將C改良為帶類的C(C with Classes)的工作,1983年該語言被正式命名為C++,主要意圖是表明C++是C的增強版,1985年釋出了第一個C++版本。
第一個版本的C++,因其面向物件的思想使得程式設計變得簡單,並且又保持了C語言的執行效率,在推出的一段時間內,得到了快速的發展,佔據了程式語言界的半壁江山。從1985年到1998年,C++從最初的C with Classes新增了很多其他的特性,比如異常處理、模板、標準模板庫(STL)、執行時異常處理(RTTI)與名字空間(Namespace)等。1998年,C++標準委員會統籌C++的所有特性,釋出了第一個C++國際標準C++98。從1998年到2003年,是C++標準從C++98到C++03的迭代期,期間C++擴增了很多額外的特性,比如以Boost MPL(Boost Metaprogramming Library)與Loki等為代表的模板超程式設計庫的出現,讓開發者更加便捷的使用C++在編譯期的執行能力,即通過程式碼編譯獲得計算結果,學術性的稱為模板超程式設計。到了2003年,C++標準委員會總結最新技術併發布了C++03標準。從2003年到2011年,也就是從C++03到C++11,期間C++引入了物件移動、右值引用、lamba表示式(函數語言程式設計)、編譯時型別識別(auto)、別名模板以及很多新型關鍵詞(如nullptr、decltype、constexpr)等現代程式語言常具備的能力,讓C++與時俱進,開發效率得到了很大的提升。這些新的特性隨著C++11標準的釋出而被正式確立下來。近年來,C++標準的變更週期縮短,由C++11到C++14以及最近的C++17都只用了3年的時間。C++14引入了二進位制文字常量、將型別推導從Lambda函式擴充套件到所有函式、變數模板以及數字分位符等。C++14 是對 C++11的重要補充和優化,是C++發展歷程中的一個小型版本,雖然新增的內容較少,但是仍然為使用者“帶來了極大的方便”,為實現使C++“對新手更為友好”這一目標作出努力。到了2017年,C++迎來了C++17標準。此次對C++的改進和擴增,讓C++變得更加容易接受和便於使用了。C++17引入了許多新的特性,比如類模板引數推導、UTF-8文字常量、fold表示式、新型別以及新的庫函式等。
C++仍在不斷的發展,下一個版本將是C++20,C++歷史上的標準變更如下。
年份 |
C++ 標準名稱 |
非正式名稱 |
---|---|---|
1998 |
ISO/IEC 14882:1998 |
C++98 |
2003 |
ISO/IEC 14882:2003 |
C++03 |
2011 |
ISO/IEC 14882:2011 |
C++11 |
2014 |
ISO/IEC 14882:2014 |
C++14 |
2017 |
ISO/IEC 14882:2017 |
C++17 |
2020 |
Yet to be determined |
C++20 |
語言的發展是一個逐步遞進的過程,C語言也不例外,C語言也有自己的標準。C語言從1972誕生以來,先後經歷了K&R C、ANSI C、C89、C99和最新的C11標準的變更,其特性不斷豐富,功能不斷強大。語言的發展也是相互促進和交融吸收的,C++是直接從C語言發展過來的,而C語言是從B語言發展過來的,B語言則是從BCPL發展而來,BCPL(Basic CPL)則從CPL發展而來,CPL則從ALGOL60演變而來。每一門新語言的誕生以及後續的演變和發展,都站在了其他語言的肩膀之上,取其精華,棄其糟粕,讓語言變得更加的強大。
以上就是簡述c++ 發展史的詳細內容,更多關於c++ 發展史的資料請關注我們其它相關文章!