簡(jiǎn)述c++ 發(fā)展史
C++是一門(mén)以C為基礎(chǔ)發(fā)展而來(lái)的一門(mén)面向?qū)ο蟮母呒?jí)程序設(shè)計(jì)語(yǔ)言,從1983年由Bjarne Stroustrup教授在貝爾實(shí)驗(yàn)室創(chuàng)立開(kāi)始至今,已有30多個(gè)年頭。C++從最初的C with class,經(jīng)歷了從C++98、C++ 03、C++ 11、C++ 14再到C++17多次標(biāo)準(zhǔn)化改造,功能得到了極大的豐富,已經(jīng)演變?yōu)橐婚T(mén)集面向過(guò)程、面向?qū)ο蟆⒑瘮?shù)式、泛型和元編程等多種編程范式的復(fù)雜編程語(yǔ)言,入門(mén)具有一定的難度。由于C++過(guò)于復(fù)雜,并且經(jīng)歷了長(zhǎng)時(shí)間的發(fā)展演變,目前對(duì)于C++標(biāo)準(zhǔn)支持的較好主要有GNU C++和Visual C++,嚴(yán)格來(lái)說(shuō),目前還沒(méi)有一個(gè)完全支持ISO C++的版本。
1954年,John Backus發(fā)明了世界上第一種計(jì)算機(jī)高級(jí)語(yǔ)言Fortran,為之后出現(xiàn)的高級(jí)編程語(yǔ)言奠定了基礎(chǔ)。1970年,AT&T的Bell實(shí)驗(yàn)室的 Ken Thompson,以BCPL語(yǔ)言為基礎(chǔ),設(shè)計(jì)出簡(jiǎn)單且接近硬件的B語(yǔ)言(取BCPL的首字母),并且他用B語(yǔ)言寫(xiě)了第一個(gè)Unix操作系統(tǒng)。到了1972年,Bell實(shí)驗(yàn)室的Dennis Ritchie和Ken Thompson共同發(fā)明了C語(yǔ)言,并使用C重寫(xiě)Unix。1979年,Bjame Stroustrup到了Bell實(shí)驗(yàn)室,開(kāi)始從事將C改良為帶類(lèi)的C(C with Classes)的工作,1983年該語(yǔ)言被正式命名為C++,主要意圖是表明C++是C的增強(qiáng)版,1985年發(fā)布了第一個(gè)C++版本。
第一個(gè)版本的C++,因其面向?qū)ο蟮乃枷胧沟镁幊套兊煤?jiǎn)單,并且又保持了C語(yǔ)言的運(yùn)行效率,在推出的一段時(shí)間內(nèi),得到了快速的發(fā)展,占據(jù)了編程語(yǔ)言界的半壁江山。從1985年到1998年,C++從最初的C with Classes新增了很多其他的特性,比如異常處理、模板、標(biāo)準(zhǔn)模板庫(kù)(STL)、運(yùn)行時(shí)異常處理(RTTI)與名字空間(Namespace)等。1998年,C++標(biāo)準(zhǔn)委員會(huì)統(tǒng)籌C++的所有特性,發(fā)布了第一個(gè)C++國(guó)際標(biāo)準(zhǔn)C++98。從1998年到2003年,是C++標(biāo)準(zhǔn)從C++98到C++03的迭代期,期間C++擴(kuò)增了很多額外的特性,比如以Boost MPL(Boost Metaprogramming Library)與Loki等為代表的模板元編程庫(kù)的出現(xiàn),讓開(kāi)發(fā)者更加便捷的使用C++在編譯期的執(zhí)行能力,即通過(guò)代碼編譯獲得計(jì)算結(jié)果,學(xué)術(shù)性的稱(chēng)為模板元編程。到了2003年,C++標(biāo)準(zhǔn)委員會(huì)總結(jié)最新技術(shù)并發(fā)布了C++03標(biāo)準(zhǔn)。從2003年到2011年,也就是從C++03到C++11,期間C++引入了對(duì)象移動(dòng)、右值引用、lamba表達(dá)式(函數(shù)式編程)、編譯時(shí)類(lèi)型識(shí)別(auto)、別名模板以及很多新型關(guān)鍵詞(如nullptr、decltype、constexpr)等現(xiàn)代編程語(yǔ)言常具備的能力,讓C++與時(shí)俱進(jìn),開(kāi)發(fā)效率得到了很大的提升。這些新的特性隨著C++11標(biāo)準(zhǔn)的發(fā)布而被正式確立下來(lái)。近年來(lái),C++標(biāo)準(zhǔn)的變更周期縮短,由C++11到C++14以及最近的C++17都只用了3年的時(shí)間。C++14引入了二進(jìn)制文字常量、將類(lèi)型推導(dǎo)從Lambda函數(shù)擴(kuò)展到所有函數(shù)、變量模板以及數(shù)字分位符等。C++14 是對(duì) C++11的重要補(bǔ)充和優(yōu)化,是C++發(fā)展歷程中的一個(gè)小型版本,雖然新增的內(nèi)容較少,但是仍然為用戶(hù)“帶來(lái)了極大的方便”,為實(shí)現(xiàn)使C++“對(duì)新手更為友好”這一目標(biāo)作出努力。到了2017年,C++迎來(lái)了C++17標(biāo)準(zhǔn)。此次對(duì)C++的改進(jìn)和擴(kuò)增,讓C++變得更加容易接受和便于使用了。C++17引入了許多新的特性,比如類(lèi)模板參數(shù)推導(dǎo)、UTF-8文字常量、fold表達(dá)式、新類(lèi)型以及新的庫(kù)函數(shù)等。
C++仍在不斷的發(fā)展,下一個(gè)版本將是C++20,C++歷史上的標(biāo)準(zhǔn)變更如下。
年份 |
C++ 標(biāo)準(zhǔn)名稱(chēng) |
非正式名稱(chēng) |
---|---|---|
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 |
語(yǔ)言的發(fā)展是一個(gè)逐步遞進(jìn)的過(guò)程,C語(yǔ)言也不例外,C語(yǔ)言也有自己的標(biāo)準(zhǔn)。C語(yǔ)言從1972誕生以來(lái),先后經(jīng)歷了K&R C、ANSI C、C89、C99和最新的C11標(biāo)準(zhǔn)的變更,其特性不斷豐富,功能不斷強(qiáng)大。語(yǔ)言的發(fā)展也是相互促進(jìn)和交融吸收的,C++是直接從C語(yǔ)言發(fā)展過(guò)來(lái)的,而C語(yǔ)言是從B語(yǔ)言發(fā)展過(guò)來(lái)的,B語(yǔ)言則是從BCPL發(fā)展而來(lái),BCPL(Basic CPL)則從CPL發(fā)展而來(lái),CPL則從ALGOL60演變而來(lái)。每一門(mén)新語(yǔ)言的誕生以及后續(xù)的演變和發(fā)展,都站在了其他語(yǔ)言的肩膀之上,取其精華,棄其糟粕,讓語(yǔ)言變得更加的強(qiáng)大。
以上就是簡(jiǎn)述c++ 發(fā)展史的詳細(xì)內(nèi)容,更多關(guān)于c++ 發(fā)展史的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++中類(lèi)的構(gòu)造函數(shù)初始值列表解讀
這篇文章主要介紹了C++中類(lèi)的構(gòu)造函數(shù)初始值列表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11二叉樹(shù)中葉子節(jié)點(diǎn)的統(tǒng)計(jì)和樹(shù)高問(wèn)題
今天小編就為大家分享一篇關(guān)于二叉樹(shù)中葉子節(jié)點(diǎn)的統(tǒng)計(jì)和樹(shù)高問(wèn)題,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03解析wprintf 中使用%I64d格式化輸出LONGLONG的詳細(xì)介紹
本篇文章是對(duì)wprintf 中使用%I64d格式化輸出LONGLONG進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05vc控制臺(tái)程序關(guān)閉事件時(shí)的處理方式及注意點(diǎn)詳解
在本篇文章里小編給大家整理的是一篇關(guān)于vc控制臺(tái)程序關(guān)閉事件時(shí)的正確處理方式的相關(guān)知識(shí)點(diǎn)內(nèi)容,對(duì)此有需求的朋友們可以參閱下。2021-12-12C++面向行輸入之get()與getline()實(shí)例詳解
在c++里當(dāng)我們輸入一個(gè)字符串時(shí)習(xí)慣用cin,但是cin只能讀取一段不含空格的字符串,如果我們需要讀取一段包含空格的字符串時(shí),就需要用到getline()或get(),下面這篇文章主要給大家介紹了關(guān)于C++面向行輸入之get()與getline()的相關(guān)資料,需要的朋友可以參考下2021-10-10C語(yǔ)言簡(jiǎn)易實(shí)現(xiàn)掃雷小游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言簡(jiǎn)易實(shí)現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10Microsoft?Visual?C++進(jìn)行調(diào)試的方法實(shí)現(xiàn)
VS功能極其強(qiáng)大,使用極其便利,本文主要介紹了Microsoft?Visual?C++進(jìn)行調(diào)試的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06