C++的歷史紀實 (轉)
語言的發展是一個逐步地進的過程,C++是直接從C語言發展過來的,而C語言是從B語言發展過來的,B語言是BCPL的一個解釋性後代,BCPL是Basic CPL。其中最有趣的是CPL中C的由來,由於當時這個語言是劍橋大學和倫敦大學合作開發的,在倫敦的人員加入之前,C表示劍橋,倫敦人員加入之後,C表示Combined組合。還有一種非正式的說法,C表示Christopher,因為Christopher是CPL背後的主要動力。
最初導致C++誕生的原因是在Bjarne博士等人試圖去分析的核心的時候,這項工作開始於1979年4月,當時由於沒有合適的工具能夠有效的分析由於核心分佈而造成的流量,以及怎樣將核心模組化。同年10月,Bjarne博士完成了一個可以執行的預處理,稱之為Cpre,它為C加上了類似Simula的類機制。在這個過程中,Bjarne博士開始思考是不是要開發一種新的語言,當時貝爾實驗室對這個想法很感興趣,就讓Bjarne博士等人組成一個開發小組,專門進行研究。
當時不是叫做C++,而是C with class,這是把它當作一種C語言的有效擴充。由於當時C語言在界居於老大的地位,要想發展一種新的語言,最強大的競爭對手就是C語言,所以當時有兩個問題最受關注:C++要在執行時間、程式碼緊湊性和資料緊湊性方面能夠與C語言相媲美,但是還要儘量避免在語言應用領域的限制。在這種情況下,一個很自然的想法就是讓C++從C語言繼承過來,但是我們的Bjarne博士更具有先見之明,他為了避免受到C語言的侷限性,參考了很多的語言,例如:從Simula繼承了類的概念,從Algol68繼承了運算子過載、引用以及在任何地方宣告變數的能力,從BCPL獲得了//註釋,從Ada得到了模板、名字空間,從Ada、Clu和ML取來了異常。
下面讓我們來一起看一下C++歷史上的主要事件:
1983年8月, 第一個C++實現投入使用(所以我喜歡說1983年C++開了天界)
1983年12月,Rick Mascitti建議命名為CPlusPlus,即C++。
1985年2月, 第一個C++ Release E釋出。
10月,CFront的第一個商業釋出,CFront Release 1.0。
10月,Bjarne博士完成了經典鉅著The C++ Programming Language第一版
1986年11月,C++第一個商業移植CFront 1.1,Glockenspiel。
1987年2月, CFront Release 1.2釋出。
11月,第一個USENIX C++會議在新墨西哥州舉行。
1988年10月,第一次USENIX C++實現者工作會議在科羅拉多州舉行。
1989年12月,ANSI X3J16在華盛頓組織會議。
1990年3月, 第一次ANSI X3J16技術會議在新澤西州召開.
5月, C++的又一個傳世經典ARM誕生。
7月, 模板被加入。
11月,異常被加入。
1991年6月, The C++ Programming Language第二版完成。
6月, 第一次ISO WG21會議在瑞典召開。
10月,CFront Release 3.0釋出。
1993年3月, 執行時型別識別在俄勒岡州被加入。
7月, 名字空間在德國慕尼黑被加入。
1994年8月, ANSI/ISO委員會草案登記。
1997年7月, The C++ Programming Language第三版完成。
10月,ISO標準透過表決被接受
1998年11月,ISO標準被批准。
接下來讓我們一起看一下C++的“第一個”:
1985年10月,Cfront Release 1.0釋出。
1987年12月, C++釋出。
1988年1 月,第一個Oregon Software C++釋出。
6 月,第一個Zortech C++釋出。
1990年5 月,第一個Borland C++釋出。
1992年2 月,第一個Dec C++釋出。
3 月,第一個 C++釋出。
5 月,第一個IBM C++釋出。
如果你對C++的歷史發展很感興趣,你可以參考The Design and Evolution of C++。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-997926/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C++的歷史C++
- Webview清空歷史紀錄的正確姿勢WebView
- 轉:IBM的歷史IBM
- 還原JavaScript的真實歷史~JavaScript
- UNIX作業系統的歷史(轉)作業系統
- HTTP的歷史HTTP
- Laravel 的歷史Laravel
- Java的歷史Java
- Macromedia的歷史Mac
- C/C++ Qt 資料庫與Chart實現歷史資料展示C++QT資料庫
- CFArray 的歷史淵源及實現原理
- IBM的歷史IBM
- win10瀏覽器檢視歷史紀錄卡死恢復方法Win10瀏覽器
- C++學習歷程 (轉)C++
- iOS歷史(iOS系統發展歷史)iOS
- C++未眠夜----我學習C++的心路歷程 (轉)C++
- tcpdump歷史TCP
- OAuth歷史OAuth
- Oracle歷史Oracle
- Mysql歷史MySql
- 歷史背景
- 光榮策略遊戲的歷史及未來——歷史篇遊戲
- 實現使用者的歷史記錄功能
- arguments 物件的老歷史物件
- 【譯】"Typeof null" 的歷史Null
- CTRL + ALT + DELETE 的歷史delete
- [轉帖]晶片相關-- Cpu歷史--intel系列晶片Intel
- [轉帖]晶片相關-- Cpu歷史--AMD系列晶片
- 全球千億美元超級富豪達到15位 數量創下歷史紀錄
- 圖形介面系統XFree86的歷史(轉)
- Shell歷史命令
- 歷史的回顧:HP-UX系統概況和版本歷史UX
- Git檢視某個歷史版本的最佳實踐Git
- [oracle] 查詢歷史會話、歷史執行計劃Oracle會話
- Oracle中檢視sql命令歷史,檢視rman命令歷史OracleSQL
- Linux上實現Windows的SQL*Plus儲存SQL歷史記錄功能---rlwrap(轉)LinuxWindowsSQL
- Git 實用操作:重寫 Commit 歷史GitMIT
- python實現股票歷史資料析Python