二級C++精品課程第一章第三節(jié)C++語言的特點(diǎn)

字號:

C++語言是對C語言的擴(kuò)展,是C語言的超集。C語言是美國貝爾實驗室在1969~1973年開發(fā)的,與此同時,還用它開發(fā)了UNIX操作系統(tǒng)。C語言又是由B語言衍生而來的,B語言是貝爾實驗室的Ken Thompson在BCPL語言的基礎(chǔ)上開發(fā)的,并用它編寫了第一個UNIX操作系統(tǒng)。BCPL語言是英國劍橋大學(xué)的Martin Richards,60年代在美國MIT時設(shè)計的。
    1971年,貝爾實驗室的Dennis Ritchie擴(kuò)展了B語言(通過增加類型),他稱之為NB,即New B。在更改了B語言的結(jié)構(gòu),并重寫了B語言的編譯器后,Ritchie稱他的新語言為C。1983年,出現(xiàn)了許多C語言的版本,美國國家標(biāo)準(zhǔn)化協(xié)會(ANSI)在1989年出版了標(biāo)準(zhǔn)的C語言,稱之為ANSI C。
    也是在1983年,貝爾實驗室的Bjarne Stroustrup在C語言的基礎(chǔ)上,創(chuàng)建了C++語言,它是為UNIX系統(tǒng)環(huán)境設(shè)計的。C++語言增強(qiáng)了C語言的能力,使得程序員能夠改進(jìn)編寫程序的質(zhì)量,并易于程序代碼的復(fù)用。C++語言的ISO標(biāo)準(zhǔn)已在1997年11月被一致通過,1998年8月被正式批準(zhǔn)。
    C++語言在1980年開始被使用,"C++"這個名字是由Rick Maseitti提出,到1983年夏確定的。C++的創(chuàng)作靈感來源于當(dāng)時計算機(jī)語言多方面的成果,特別是BCPL語言(Basic Combined Programming Language, 它也是C語言的來源之一)和Simula 67語言(以面向?qū)ο鬄楹诵牡恼Z言),同時還借鑒了Algol 68。就如同它的名字表達(dá)的那樣,C++語言是C語言的一個超集,它是一門混合型的語言,既支持傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計,又支持面向?qū)ο蟮某绦蛟O(shè)計,這是C++語言成功流行的一個重要原因。
    讀者可能產(chǎn)生疑問,既然面向?qū)ο蟮某绦蛟O(shè)計方法比結(jié)構(gòu)化的程序設(shè)計方法先進(jìn)許多,為什么C++語言仍舊支持后者,而不愿意成為一門純粹的面向?qū)ο蟮某绦蛟O(shè)計語言?
    實際上,這種做法也是從程序設(shè)計語言發(fā)展實踐中得到的經(jīng)驗。面向?qū)ο蟪绦蛟O(shè)計的概念提出后,某些公司和機(jī)構(gòu)曾經(jīng)開發(fā)出一些純面向?qū)ο蟮恼Z言,比如第一個成功的、純面向?qū)ο蟮某绦蛟O(shè)計語言的Smalltalk,但是由于廣大的程序員不能一下子完全接受面向?qū)ο蟪绦蛟O(shè)計的思想,不能完全適應(yīng)面向?qū)ο蟪绦蛟O(shè)計的技術(shù),這些語言都沒有能夠廣泛的流行起來。事實上,程序員們長期采用結(jié)構(gòu)化的程序設(shè)計方法,并從中汲取了許多寶貴經(jīng)驗,形成了巨大的財富,這些財富應(yīng)該得到繼承和發(fā)展;而且結(jié)構(gòu)化程序設(shè)計方法在小型軟件項目的開發(fā)設(shè)計上仍然很適用,完全否定這種設(shè)計方法也是不恰當(dāng)?shù)?。C++作為一門混合型語言,在增加對于面向?qū)ο蠓椒ǖ闹С值耐瑫r,還繼承了傳統(tǒng)程序設(shè)計語言C的優(yōu)點(diǎn),克服了其不足之處,使得自身既適用于結(jié)構(gòu)化程序設(shè)計,又能滿足面向?qū)ο蟪绦蛟O(shè)計的要求,這就符合廣大程序員逐步更新其程序設(shè)計觀念和方法的要求,因而很快流行起來??傊?,對于傳統(tǒng)的財富不是完全拋棄,而是繼承并發(fā)展之,是C++語言成功的重要原因。