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

2.3 C/C++發(fā)展簡史

C語言由貝爾實驗室的Dennis Ritchie從兩個早期語言BCPL和B發(fā)展而來,并于1972年在DEC PDP-11型機上實現。C語言最強大之處在于提供靈活的數據類型和硬件操作能力(位操作能力),因此被廣泛用做操作系統(tǒng)軟件和設備驅動程序設計的首選語言。UNIX操作系統(tǒng)就是使用C語言開發(fā)的第一個大型軟件系統(tǒng)。實際上,現在的大多數操作系統(tǒng)都是用C/C++語言實現的。C語言與硬件無關,因此經過認真的設計,程序員編寫出的程序可以移植到大多數不同的硬件平臺上。

隨著C語言的廣泛應用,出現了許多不兼容的版本,這對于C的可移植性來說是一個非常嚴重的問題。1983年,ANSI開始組織C的標準化工作。1989年,ANSI C語言標準正式頒布。此后,ANSI與ISO合作在全世界范圍內對C語言進行標準化和推廣。1990年,標準文檔出版,ANSI/ISO C正式誕生。C語言的最新情況是:1999年,ISO批準了一個新的C語言版本,即C99。

1979年,貝爾實驗室的一個年輕工程師Bjarne Stroustrup為了使C語言成為一種更好的實現大型軟件工程的編程語言而展開了實驗,實驗的內容就是對C進行擴展。那時,一般項目都需要十幾萬行的代碼。現在,光是Windows 2000(前身是NT 5.0)就有3000多萬行代碼。當軟件規(guī)模超過了100000行代碼的時候,C語言的缺陷達到了讓人無法忍受的地步。

最初對C的擴展就是給它增加類的概念,從而產生了“帶類的C”,它可以很好地支持封裝和信息隱藏。1983年,又對帶類的C做了幾處修改和擴展,于是“C++”這個名字產生了。

Bjarne Stroustrup是C++的鼻祖,受到無數程序員的敬仰。按中國人的說法,Bjarne果真是聰明絕頂。當初他要是把“++”注冊了專利,不僅可以發(fā)一筆大財,而且也不會導致現在“++”滿天飛。

1985至1989年間,C++經歷了最主要的革新:相繼增加了保護成員、保護繼承、模板,以及有爭議的多重繼承等特性。C++到了需要標準化的時候。

C++的標準化不同于C的標準化,它從一開始就是國際性的合作。ANSI C委員會使用Kernighan和Ritchie寫的《The C Programming Language》作為起點,而ANSI C++委員會使用Ellis和Bjarne寫的《Annotated C++ Reference Manual (ARM)》作為基礎文檔。1998年,在做了一些次要的修改后,ANSI/ISO C++產生了。C++的國際性工作使得該標準在世界范圍內被廣泛接受。

關于C++的設計和演化,在Bjarne Stroustrup的著作《The Design and Evolution of C++》中有詳細的敘述,其中總結了C++的一些設計原則:

? C++的每一步演化和發(fā)展必須是由于實際問題所引起的。

? C++是一門編程語言,而不是一個完整的系統(tǒng)。

? 不能無休止地一味追求完美。

? C++在其存在的“當時”必須是有用處的。

? 每一種語言特性必須有明確的實現方案。

? 總能提供一種變通的方法。

? 不強制于人。

……

從一開始,C++面向的就是那些從事軟件開發(fā)工作的程序員。所謂的“完美”被認為是不可能達到的。在C++語言的演化過程中,來自用戶的反饋和語言實現者們積累的經驗是最為重要的。

主站蜘蛛池模板: 太保市| 韩城市| 琼结县| 福鼎市| 辽中县| 达拉特旗| 桑日县| 兰坪| 安阳县| 安宁市| 嘉黎县| 永和县| 蓬莱市| 伊宁县| 调兵山市| 开平市| 龙里县| 彭水| 临洮县| 梁河县| 绍兴县| 乳源| 伊宁县| 云霄县| 临城县| 阳春市| 淮北市| 河南省| 东丽区| 桂阳县| 长丰县| 彭阳县| 澄江县| 宝清县| 黔东| 轮台县| 九江县| 织金县| 海林市| 合川市| 榆中县|