官术网_书友最值得收藏!

1.1 C++歷史背景

要學(xué)一門語言,首先要對這門語言有一定的了解,知道這門語言能做什么,要怎樣才能學(xué)好。本節(jié)將對C++語言的歷史背景進行簡單的介紹,使讀者對C++語言有一個簡單而直接的印象。

1.1.1 計算機——20世紀(jì)最偉大的發(fā)明

計算機的出現(xiàn)給人們的生活帶來了巨大的變化,它是如何發(fā)展起來的呢?開始時人們致力研究的能夠進行四則運算的機器,是通過機械齒輪驅(qū)動的加法器,而后是精度只有12位的乘法計算器,直到1847年Charles Babbages開發(fā)出能計算31位精度的機械式差分機,普遍認(rèn)為這臺差分機是世界上第一臺機械式計算機。隨著電子技術(shù)的發(fā)展,真空二極管、真空三極管問世,到1939年第一部用真空管計算的機器被研制出來,該機器能進行16位加法運算;隨后,用氖氣燈(霓虹燈)的存儲器、復(fù)雜數(shù)字計算機(斷電器計數(shù)機)、可編寫程序的計數(shù)機,一一研制出來。1946年,第一臺電子管計算機ENIAC在美國研制出來,這臺計算機占地170m2,質(zhì)量30t,有1.8萬個電子管,用十進制計算,運算5000次/s。計算機從此進入了電子計算機時代,經(jīng)歷了真空管計算機、晶體管計算機、集成電路計算機、大規(guī)模集成電路計算機4個階段,每一個階段都是隨著電子技術(shù)的發(fā)展而發(fā)展的,晶體管的出現(xiàn)取代了電子管,將電子元件集成到一片小小的硅片上,形成集成電路(IC),在一塊芯片上容納幾百個或是幾千個電子元件形成了大規(guī)模集成電路(LSI),直到現(xiàn)在已經(jīng)出現(xiàn)了很薄的電子芯片,可謂發(fā)展迅速。

現(xiàn)在計算機已經(jīng)應(yīng)用到各個領(lǐng)域,科學(xué)計算、信號檢測、數(shù)據(jù)管理、輔助設(shè)計都在使用計算機,人們的生活已經(jīng)漸漸離不開它,所以說計算機是20世紀(jì)最偉大的發(fā)明。

1.1.2 C++發(fā)展歷程

早期的計算機程序語言是計算機控制指令,每條指令是一組二進制數(shù),不同的計算機有不同的計算機指令集。使用二進制指令集開發(fā)程序是一件很令人頭痛的事,需要記住大量的二進制數(shù)。為了便于記憶,人們將二進制數(shù)用字母組合代替,以字符串關(guān)鍵字代替二進制機器碼的編程語言稱為匯編語言。匯編語言被稱為低級語言,雖然它比機器碼容易記憶,但仍然具有可讀性差的缺點,大量的跳轉(zhuǎn)指令和地址值很難讓程序員在很短的時間理解程序的意思,于是編程語言進入了高級語言時代。

第一種高級語言是美國尤尼法克公司在1952年研制成功的Short Code,被廣泛使用的高級語言是FORTRAN,它是由美國科學(xué)家John Backus設(shè)計并在IBM公司的計算機上實現(xiàn)的。FORTRAN語言和ALGOL60主要應(yīng)用于科學(xué)和工程計算,隨后出現(xiàn)了Pascal和C語言。C語言是在其他語言基礎(chǔ)上發(fā)展起來的。首先是由Richard Martin開發(fā)了一種高級語言BCPL,隨后Ken Thompson使用BCPL語言對其進行了簡化,形成一門新的語言—B語言,B語言沒有類型的概念,Dennis M. Ritchie對B語言進行研究和改進,在B語言基礎(chǔ)上添加了結(jié)構(gòu)和類型,并將這個改進后的語言命名為C語言,寓意很簡單,因為字母C是字母B的下一個字母,預(yù)示著語言的發(fā)展。

本書介紹的C++語言就是從C語言發(fā)展而來的。Bjarne Stroustrup經(jīng)過鉆研在C語言中加入了類的概念,C++最初的名字是C with Class,到1983年12月由Rick Mascitti建議改名為C Plus Plus,即C++。最開始提出類概念的語言是Simula,它具有很高的靈活性,但無法勝任比較大型的程序。此后在Simula語言基礎(chǔ)上發(fā)展的語言Smalltalk才是真正的面向?qū)ο笳Z言,但Smalltalk-80不支持多繼承。

C++從Simula繼承了類的概念,從ALGOl68繼承了運算符重載、引用以及在任何地方聲明變量的能力,從BCPL獲得了“//”注釋,從Ada得到了模板、名字空間,從Ada、Clu和ML取來了異常。

1.1.3 C++領(lǐng)域杰出人物

Dennis M. Ritchie 被贊譽為C語言之父、UNIX之父,生于1941年9月9日,哈佛大學(xué)數(shù)學(xué)博士,曾任朗訊科技公司貝爾實驗室(原AT&T實驗室)下屬的計算機科學(xué)研究中心系統(tǒng)軟件研究部的主任。他開發(fā)了C語言,并著有《C程序設(shè)計語言》(The C Programming Language)一書,還和Ken Thompson一起開發(fā)了UNIX操作系統(tǒng)。他因杰出的工作成就得到了眾多計算機組織的公認(rèn)和表彰,1983年,獲得美國計算機協(xié)會頒發(fā)的圖靈獎(又稱計算機界的諾貝爾獎),還獲得C&C基金獎、電氣與電子工程師協(xié)會優(yōu)秀獎?wù)隆⒚绹鴩壹夹g(shù)獎?wù)碌榷囗棿螵劇?/p>

Dennis M. Ritchie

Bjarne Stroustrup

Bjarne Stroustrup 1950年出生于丹麥,先后畢業(yè)于丹麥奧胡斯大學(xué)和英國劍橋大學(xué),AT&T大規(guī)模程序設(shè)計研究部門負(fù)責(zé)人,AT&T貝爾實驗室和ACM成員。1979年,Stroustrup開始開發(fā)一種語言,當(dāng)時稱為C with Class,后來演化為C++。1998年,ANSI/ISO C++標(biāo)準(zhǔn)建立,同年,Stroustrup推出其經(jīng)典著作The C++ Programming Language的第3版。

Scott Meyers 世界頂級C++軟件開發(fā)技術(shù)權(quán)威之一。他擁有Brown University的計算機科學(xué)博士學(xué)位,其著作Effective C++More Effective C++很受編程人員的喜愛。Scott Meyers曾經(jīng)是C++ Report的專欄作家,為C/C++ Users JournalDr. Dobb’s Journal撰過稿,為全球范圍內(nèi)的客戶提供咨詢活動。他還是Advisory Boards for NumeriX LLC和InfoCruiser公司的成員。

Scott Meyers

Andrei Alexandrescu 被認(rèn)為是新一代C++天才的代表人物。2001年,他撰寫了經(jīng)典名著Modern C++ Design,其中對Template技術(shù)進行了精湛運用,第一次將模板作為參數(shù)在模板編程中使用,該書震撼了整個C++社群,開辟了C++編程領(lǐng)域的Modern C++新時代。此外,他還與Herb Sutter合著了C++ Coding Standards。他在對象拷貝(object copying)、對齊約束(alignment constraint)、多線程編程、異常安全和搜索等領(lǐng)域做出了巨大貢獻。

Andrei Alexandrescu

Herb Sutter C++ Standard Committee的主席,作為ISO/ANSI C++標(biāo)準(zhǔn)委員會的委員,Herb Sutter是C++程序設(shè)計領(lǐng)域屈指可數(shù)的大師之一。他的Exceptional系列3本書(Exceptional C++More Exceptional C++Exceptional C++ Style)成為C++程序員必讀書。他是深受程序員喜愛的技術(shù)講師和作家,是C/C++ Users Journal的撰稿編輯和專欄作者,曾發(fā)表了上百篇軟件開發(fā)方面的技術(shù)文章和論文。他還擔(dān)任Microsoft Visual C++架構(gòu)師,和Stan Lippman一起在微軟公司主持VC 2005(即C++/CLI)的設(shè)計。

Herb Sutter

Andrew Koenig AT&T公司Shannon實驗室大規(guī)模編程研究部門成員,同時也是C++標(biāo)準(zhǔn)委員會的項目編輯,是一位真正的C++權(quán)威。Andrew Koenig的編程經(jīng)驗超過30年,其中有15年在使用C++,已經(jīng)出版了超過150篇和C++有關(guān)的論文,并且在世界范圍內(nèi)就這個主題進行過多次演講,對C++的最大貢獻是帶領(lǐng)Alexander Stepanov將STL引入C++標(biāo)準(zhǔn)。

Andrew Koenig

主站蜘蛛池模板: 浙江省| 双牌县| 沈丘县| 乳山市| 南开区| 郴州市| 尼木县| 靖江市| 迁安市| 曲阜市| 汾阳市| 如东县| 宜春市| 无棣县| 儋州市| 团风县| 岳池县| 罗定市| 易门县| 甘德县| 裕民县| 房产| 西林县| 英德市| 仙桃市| 津南区| 巫山县| 巴彦淖尔市| 图们市| 肇州县| 双桥区| 平江县| 绥化市| 日喀则市| 泗水县| 玉门市| 防城港市| 德令哈市| 长泰县| 禄劝| 石渠县|