自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++之父:面向?qū)ο蟮倪M(jìn)化與實(shí)現(xiàn)

原創(chuàng)
開發(fā) 架構(gòu)
如果Bjarne Stroustrup從A&M大學(xué)工程學(xué)院離職,他的簡歷上只需一句話就會(huì)有一群頂級(jí)軟件公司向他拋出橄欖枝:“Bjarne Stroustrup,C++編程語言的發(fā)明者”。

【51CTO獨(dú)家特稿】如果Bjarne Stroustrup(比雅尼·斯特勞斯特魯普)從A&M大學(xué)工程學(xué)院離職,他的簡歷上只需一句話就會(huì)有一群頂級(jí)軟件公司向他拋出橄欖枝:

51CTO開發(fā)頻道年終巨獻(xiàn):架構(gòu)師最怕程序員知道的十件事

Bjarne Stroustrup,C++編程語言的發(fā)明者”。

Bjarne 1950年出生在丹麥,對(duì)于軟件開發(fā)界,丹麥不僅是一個(gè)童話王國,還是群星閃耀大師頻出的地方。Delphi和C#之父Anders、Ruby on Rails創(chuàng)始人DHH都是丹麥人。1975年,Bjane獲得丹麥奧胡斯大學(xué)的數(shù)學(xué)和計(jì)算機(jī)科學(xué)碩士學(xué)位,又于1979年獲得英國劍橋大學(xué)的計(jì)算機(jī)科學(xué)博士學(xué)位。

貝爾實(shí)驗(yàn)室

此后20余年,Bjarne一直就職于貝爾實(shí)驗(yàn)室Large-scale Programming(大型程序設(shè)計(jì)研究部)實(shí)驗(yàn)室。貝爾實(shí)驗(yàn)室的工作可以大致分為三個(gè)類別:基礎(chǔ)研究,系統(tǒng)工程和應(yīng)用開發(fā)。Bjarne就職于開發(fā)部門,這是貝爾實(shí)驗(yàn)室最大的部門,負(fù)責(zé)設(shè)計(jì)構(gòu)成貝爾系統(tǒng)電信網(wǎng)絡(luò)的設(shè)備和軟件。

[[7666]] 
C++之父Bjarne Stroustrup

這是一段難得的經(jīng)歷。上世紀(jì)七八十年代,貝爾實(shí)驗(yàn)室一直站在計(jì)算機(jī)科學(xué)和應(yīng)用軟件開發(fā)的前沿,C++之前,這里是Unix系統(tǒng)和C語言的發(fā)源地。

1970年,在貝爾實(shí)驗(yàn)室工作的Unix之父Ken Thompson將BCPL語言(BCPL是劍橋大學(xué)1963年改造自ALGOL 60的語言)進(jìn)行了修改,Ken Thompson為它起了一個(gè)有趣的名字“B語言”,并用B語言寫了第一個(gè)UNIX操作系統(tǒng)。

1972年,貝爾實(shí)驗(yàn)室的D.M.Ritchie在B語言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語言,他取了BCPL的第二個(gè)字母作為這種語言的名字,這就是C語言。

自1978年貝爾實(shí)驗(yàn)室正式發(fā)布C語言以來,C以簡潔緊湊的風(fēng)格,面向過程的編程方式,豐富的數(shù)據(jù)結(jié)構(gòu)和強(qiáng)大的底層控制能力獲得迅速發(fā)展。到上世紀(jì)80年代,C語言已經(jīng)成為最受歡迎的編程語言;許多著名的系統(tǒng)軟件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。

作為貝爾實(shí)驗(yàn)室開發(fā)部門的架構(gòu)師,Bjarne體會(huì)到科學(xué)的嚴(yán)禁和苛刻,見證了C語言誕生和繁盛的過程;更重要的是,他感受到一門編程語言不僅對(duì)項(xiàng)目組的內(nèi)部工作起到作用,對(duì)整個(gè)軟件開發(fā)界甚至IT產(chǎn)業(yè),都產(chǎn)生推動(dòng)作用。

面向?qū)ο蟮倪M(jìn)化與實(shí)現(xiàn)

“沒有銀彈”。C語言當(dāng)然也存在一些自身無法解決的問題。C語言的缺點(diǎn)主要表現(xiàn)在數(shù)據(jù)的封裝性上,這一點(diǎn)使得C在數(shù)據(jù)的安全性上有很大缺陷;C語言的語法限制不太嚴(yán)格,對(duì)變量的類型約束不嚴(yán)格,影響程序的安全性,對(duì)數(shù)組下標(biāo)越界不作檢查等。從應(yīng)用的角度,C語言比其他高級(jí)語言較難掌握;此外,作為C語言的一大特色,指針可以說是C語言優(yōu)于其它高級(jí)語言的一個(gè)重要原因。就是因?yàn)樗兄羔?,可以直接進(jìn)行靠近硬件的操作,但是C的指針操作也給它帶來了很多不安全的因素

除了上述原因,現(xiàn)實(shí)世界的業(yè)務(wù)需求也在隨著IT業(yè)的發(fā)展發(fā)生著翻天覆地的變化。人們需要新的軟件分析和實(shí)現(xiàn)方法;此外,對(duì)于開發(fā)人員,他們一直被軟件開發(fā)的效率問題困擾,軟件如何得到更好更高效的維護(hù)?如何讓已有資源的得到更好的復(fù)用?

[[7667]]

答案是面向?qū)ο蟆C嫦驅(qū)ο蟪绦蛟O(shè)計(jì)在某種程度上通過強(qiáng)調(diào)可重復(fù)性解決了這一問題。向?qū)ο蟪绦蛟O(shè)計(jì)可以被視作一種在程序中包含各種獨(dú)立而又互相調(diào)用的單位和對(duì)象的思想,這與傳統(tǒng)的思想剛好相反:傳統(tǒng)的程序設(shè)計(jì)主張將程序看作一系列函數(shù)的集合,或者直接就是一系列對(duì)電腦下達(dá)的指令。面向?qū)ο蟪绦蛟O(shè)計(jì)中的每一個(gè)對(duì)象都應(yīng)該能夠接受數(shù)據(jù)、處理數(shù)據(jù)并將數(shù)據(jù)傳達(dá)給其它對(duì)象,因此它們都可以被看作一個(gè)小型的“機(jī)器”,或者說是負(fù)有責(zé)任的角色。

C With Class

問題是,這項(xiàng)理論在實(shí)際的應(yīng)用開發(fā)中,只有70年代的Smalltalk語言能夠通過內(nèi)建的功能支持(30年后的今天依然將Smalltalk視為面向?qū)ο笳Z言的基礎(chǔ));現(xiàn)有的主流編程語言在設(shè)計(jì)和實(shí)現(xiàn)方法上都傾向于過程和函數(shù),底層的編譯器無法解釋對(duì)象這一概念。

Bjarne在上世紀(jì)80年代初期在C語言的基礎(chǔ)上,實(shí)現(xiàn)了內(nèi)建支持面向?qū)ο蟪绦蛟O(shè)計(jì)方法的C with Classes。一開始C++是作為C語言的增強(qiáng)版出現(xiàn)的,從給C語言增加類開始,不斷的增加新特性。虛函數(shù)(virtual function)、運(yùn)算符重載(operator overloading)、多重繼承(multiple inheritance)、模板(template)、異常(exception)、RTTI、命名空間(name space)逐漸被加入標(biāo)準(zhǔn)。

#T#80年代末,C++開始以一門面向?qū)ο笳Z言的高級(jí)語言的獨(dú)立姿態(tài)出現(xiàn)在程序員面前,大家被面向?qū)ο蟮木幊趟枷氪騽?dòng),發(fā)現(xiàn)原來需求中的問題可以如此脈絡(luò)清晰,程序設(shè)計(jì)也可以如此簡單高效;更重要的是,C++在效率和平臺(tái)方面并不比C差(C++與C的效率往往相差在正負(fù)5%之間,有人認(rèn)為在大多數(shù)場合C++ 完全可以取代C語言)。面向?qū)ο蟮木幊趟枷腴_始席卷整個(gè)開發(fā)領(lǐng)域,標(biāo)準(zhǔn)模板庫(STL)和微軟的VC++平臺(tái)推波助瀾,C++開始流行起來。

經(jīng)過十年的發(fā)展,1998年C++標(biāo)準(zhǔn)委員會(huì)成立,國際標(biāo)準(zhǔn)組織(ISO)在這一年頒布了C++程序設(shè)計(jì)語言的國際標(biāo)準(zhǔn)ISO/IEC 1488-1998。C++成為具有國際標(biāo)準(zhǔn)的編程語言,通常稱作ANSI/ISO C++。1998年是C++標(biāo)準(zhǔn)委員會(huì)成立的第一年,以后每5年視實(shí)際需要更新一次標(biāo)準(zhǔn)。

作為20年盛行不衰的一門編程語言,C++目前還占據(jù)這編程語言排行榜前三名的位置。Bjarne Stroustrup寫下了它的早期定義并做出了首個(gè)實(shí)現(xiàn),在C++流行之前,Bjarne選擇制定了C++的設(shè)計(jì)標(biāo)準(zhǔn),設(shè)計(jì)了C++主要的輔助支持環(huán)境,而且負(fù)責(zé)處理C++標(biāo)準(zhǔn)委員會(huì)的擴(kuò)展提案。

[[7668]] 
Bjarne著作等身,其撰寫的多本書籍已成為C++的必讀書籍

而C++對(duì)整個(gè)軟件開發(fā)及IT業(yè)的貢獻(xiàn),不言而喻。憑借這些突出的貢獻(xiàn),Bjarne Stroustrup獲得了眾多贊譽(yù)和獎(jiǎng)項(xiàng):

1990年,Bjarne榮獲《財(cái)富》雜志評(píng)選的“美國12位最年輕的科學(xué)家”稱號(hào)。

1993年,由于在C++領(lǐng)域的重大貢獻(xiàn),Bjarne獲得了ACM該年度的 Grace Murray Hopper大獎(jiǎng)并成為ACM院士(成立于1947年的ACM協(xié)會(huì)是歷史最悠久、目前世界上最大的教育和科學(xué)計(jì)算協(xié)會(huì),成為ACM院士是個(gè)人成就的里程碑)。

1995年,BYTE雜志頒予他“近20年來計(jì)算機(jī)工業(yè)最具影響力的20人”的稱號(hào)。

目前,C++仍在它所擅長的領(lǐng)域發(fā)揮著不可或缺的作用。作為C++之父,Bjarne Stroustrup仍致力于C++標(biāo)準(zhǔn)的改進(jìn)和推廣,其著作《C++編程語言》、《C++的設(shè)計(jì)和演化》和《C++加注參考手冊》等已成為C++學(xué)習(xí)的經(jīng)典讀物。

責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2024-01-03 13:38:00

C++面向?qū)ο缶幊?/a>OOP

2010-01-20 09:48:44

面向?qū)ο?/a>

2025-04-02 03:11:00

Python函數(shù)C++

2010-01-13 14:05:55

C++語言

2024-04-28 11:01:27

C++編程語言函數(shù)

2010-01-22 10:26:40

C++語言

2022-10-21 09:01:41

StudentC++類型

2011-07-10 15:36:54

C++

2011-07-14 17:37:02

C++面向?qū)ο缶幊趟枷?/a>

2011-07-14 17:24:10

C++面向?qū)ο笏枷?/a>

2009-12-22 03:05:03

面向?qū)ο笾?/a>Alan Kaysmalltalk

2010-01-21 16:08:26

C++語言

2023-10-31 17:57:52

C++編程語言

2020-04-15 11:07:31

C語言對(duì)象思想

2011-07-01 10:52:49

C++構(gòu)造函數(shù)賦值操作

2020-10-23 18:46:58

C++程序類別

2022-10-12 08:38:51

C語言classC++

2023-02-08 07:05:44

2011-06-02 09:47:11

C語言重構(gòu)

2013-12-12 16:37:12

Lua腳本語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)