C語言發(fā)展簡史_第1頁
C語言發(fā)展簡史_第2頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1 / 25C語言發(fā)展簡史【起源】 C 語言最早的原型是 ALGOL 60 1963 年,劍橋 大學將其發(fā)展成為 CPL(Combined Programing Language) 。1967 年,劍橋大學的 Matin Richards 對 CPL 語言進行了簡化,產(chǎn) 生了 BCPL 語言。1970 年,美國貝爾實驗室(Bell Labs)的 Ken Thompson 將 BCPL 進行了修改, 并取名叫做 B 語言, 意思是提 取 CPL 的 精 華 (Boiling CPLdown to its basic good features) 。并用 B 語言寫了第一個 UNIX 系統(tǒng)。197

2、3 年, AT&T 貝爾實驗室的 Dennis Ritchie(D.M.RITCHIE) 在 BCPL和 B 語言的基礎(chǔ)上設(shè)計出了一種新的語言, 取 BCPL 中的第二個字母為名,這就是大名鼎鼎的 C 語言。隨后不久, UNIX 的內(nèi)核 (Kernel) 和應(yīng)用程序全部用 C 語言改寫,從此, C 語言成為 UNIX 環(huán)境下使用最廣泛的主流編程語言。【K&R C】 1978 年, Dennis Ritchie 和 Brian Kernighan 合作推出了 The C Programming Language 的第一版 ( 按照慣 例,經(jīng)典著作一定有簡稱,該著作簡稱為K&

3、;R),書末的參考指南 (Reference Manual) 一節(jié)給出了當時 C 語言的完整定義, 成為那時C 語言事實上的標準,人們稱之為K&R C。從這一年以后,C 語言被移植到了各種機型上,并受到了廣泛的支持,使C 語言在當時的軟件開發(fā)中幾乎一統(tǒng)天下。2 / 25【C89 (ANSI C) 】 隨著 C 語言在多個領(lǐng)域的推廣、應(yīng)用, 一些新的特性不斷被各種編譯器實現(xiàn)并添加進來。于是,建立一 個新的“無歧義、于具體平臺無關(guān)的 C 語言定義” 成為越來越 重要的事情。 1983年, ASC X3(ANSI 屬下專門負責信息技術(shù)標 準化的機構(gòu), 現(xiàn)已改名為 INCITS) 成立了一個專

4、門的技術(shù)委員會 J11(J11 是委員會編號, 全稱是 X3J11) , 負責起草關(guān)于 C 語言 的標準草案。1989 年, 草案被 ANSI正式通過成為美國國家標 準,被稱為 C89 標準?!綜90 (ISO C) 隨后,The C Programming Language 第二版開始出版發(fā)行,書中內(nèi)容根據(jù) ANSI C(C89) 進行了更新。 1990 年,在 ISO/IEC JTC1/SC22/WG14(ISO/IEC 聯(lián)合技術(shù)第 I 委員會第 22 分委員會第 14 工作組 ) 的努力下, ISO 批準了 ANSI C 成為國際標準。于是 ISO C(又稱為 C90)誕生了。除了 標準

5、文檔在印刷編排上的某些細節(jié)不同外, ISO C(C90) 和 ANSIC(C89) 在技術(shù)上完全一樣?!綜95】 之后, ISO 在 1994 、1996 年 分別出版了 C90 的 技術(shù)勘誤文檔,更正了一些印刷錯誤,并在 1995 年通過了一份 C90 的技術(shù)補充,對 C90 進行了微小的擴充,經(jīng)過擴充后的 ISO C 被稱為 C95 。3 / 25【C99】 1999 年,ANSI 和 ISO 又通過了最新版本的 C 語 言標準和技術(shù)勘誤文檔,該標準被稱為 C99 。這基本上是目前 關(guān)于 C 語言的最新、最權(quán)威的定義了?,F(xiàn)在, 各種 C 編譯器都提供了 C89(C90) 的完整支持,對 C

6、99還只提供了部分支持,還有一部分提供了對某些 K&R C 風格的支持。/C 語言的發(fā)展史Dennis M. RitchieTjy 平坦軟件園Bell Labs/Lucent TechnologiesTjy 平坦軟件園Murray Hill, NJ 07974 USATjy平坦軟件園dmrbell- 概要C 語言作為最初的 Unix 操作系統(tǒng)的系統(tǒng)實現(xiàn)語言,在19704 / 25年早期誕生。它以無類型的 B 語言為基礎(chǔ), 形成了一個類型結(jié)構(gòu); 它在小型機上被發(fā)明,作為一個工具,以改進貧乏的編程環(huán)境。 在今天,它已經(jīng)成為一種占統(tǒng)治地位的語言。 本文研究它的發(fā)展。 Tjy 平坦軟件園簡介版

7、權(quán)提示:版權(quán)所有 1993 計算機協(xié)會公司。此電子版由作 者授權(quán)發(fā)表。有關(guān)出版事宜,請聯(lián)系 ACM 或作者。本文被用于一 九九三年四月,在馬薩諸塞州劍橋的第二次編程語言歷史會議上 的演講。Tjy 平坦軟件園之后被收錄進會議記錄: 編程語言歷史, 第二版。 ThomasJ. Bergin,Jr. and Richard G. Gibson, Jr. ACMPress (New York) andAddison-Wesley (Reading, Mass), 1996; ISBN 0-201-89502-1.本文是關(guān)于 C 程序設(shè)計語言的發(fā)展、它所受到的影響以及它 誕生的條件。為簡潔起見,我略過了

8、對 C 本身完整的描述、它的 起源BJohnson 73 及更上一代 BCPLRichards 79 ,相反集中 關(guān)注每一種語言的典型特性,以及他們?nèi)绾伟l(fā)展變化。 Tjy 平 坦軟件園5 / 25C 在 19691973 年間與 Unix 操作系統(tǒng)同時誕生;最富創(chuàng) 造性的時期是 1972 年。 另一次大的變化發(fā)生在 1977 到 1979 年 間, 當 Unix系統(tǒng)的可移植性得到證明時。 在后一段時期的中間, 這個語言的第一個被廣為傳播的描述出現(xiàn)了:C 程序設(shè)計語言,常常被稱為白皮書或 K&RKernighan 78 。最后,在 1980 年代 中期,它被 ANSI X3J11 委員會

9、正式標準化,作了進一步修改。 直到 1980 年代早期,盡管編譯器已在多種機器結(jié)構(gòu)及操作系統(tǒng) 上出現(xiàn),這個語言幾乎與 Unix 特別密切關(guān)聯(lián);更近一些,它的 使用傳播得更廣, 并且在今天它幾乎是計算機行業(yè)被使用最多的語言。 Tjy 平坦軟件園歷史:環(huán)境貝爾電話實驗室的計算機系統(tǒng)研究在 1960 代年晚期是亂糟 糟的Ritchie 78 Ritchie 84。貝爾電話實驗室公司正從他和麻省理工學院、通用電氣公司的合作項目 MulticsOrganick 78 撤離。到 1969 年,貝爾實驗室管理層和研究人員認為, Multics 項目不能按期完成并且代價高昂。在 GE-645 Multics

10、機器被撤走之前, KenThompson 領(lǐng)導一個非正式小組,開始一 些其它的研究。 Tjy 平坦軟件園6 / 25Thompson 希望按自己的設(shè)計,使用一切有效的方式,創(chuàng)造 一個適當?shù)挠嬎悱h(huán)境。他的計劃,回想起來是清晰的。組合 Multics 中的許多創(chuàng)新特征,包括一個作為控制場所的進程的清 晰概念、 一個樹結(jié)構(gòu)文件系統(tǒng)、 一個作為用戶級程序的命令解釋 器、文本文件的簡單表示和訪問設(shè)備的通用化。 他們排除其余特 性,比如對內(nèi)存和文件的統(tǒng)一訪問。開始,他與我們其余人推遲 了 Multics 中的另一個先鋒性(但非原創(chuàng))特征,即只使用高級 語言來編寫。我對 Multics 實現(xiàn)所用的語言PL/

11、I ,并無興趣,但我們還使用其他語言,包括BCPL 我們對于不能利用匯編之上的高級語言進行編程的優(yōu)點,比如容易編寫、易于理解,感到 遺憾。當時我們并未特別注重可移植性;到后來才有了這方面的 興趣。Tjy 平坦軟件園Thompson 面臨的是那個時代古怪和難纏的硬件:DECPDP-7,他在 1968 年開始使用時,只有 8K 容量的 16 位內(nèi)存,并且沒有 可用的軟件。當時他希望使用高級語言, 但還是用 PDP-7 匯編編 寫了最初的Unix 系統(tǒng)。開始,他并未在 PDP-7 上編碼,相反使 用一套 GE-635 機器上,用于 GEMA 匯編器的宏。一個后期處理 器生成 PDP-7 可讀的紙7

12、/ 25帶。Tjy 平坦軟件園這些紙帶從 GE 機器傳送到 PDP-7 進行測試,直到一個原始 的Unix 內(nèi)核、一個編輯器、 一個匯編器、 一個簡單的 shell (命 令解析器),和其它工具(像 Unix rm, cat, cp 命令)被完成。 此后,這個操作系統(tǒng)可以自我支撐:可以編寫、測試程序勿需借 助紙帶,并且程序開發(fā)可以在 PDP-7 上繼續(xù)進行。 Tjy 平坦軟 件園Thompson 的 PDP-匯編器在簡明性上甚至優(yōu)于 DEC 的;它對表達式求值并得到對應(yīng)的數(shù)據(jù)位。沒有庫、裝載器或鏈接器: 程序的全部源文件被送給匯編器, 輸出文件有一個固定名字 產(chǎn)生后被直接執(zhí)行(這個名字, a.

13、out ,解釋了一點 Unix 的 淵源;它是匯編器的輸出。 甚至在系統(tǒng)有了鏈接器和顯式指定另 一個名字的方式之后,它仍被保留作為編譯的默認可執(zhí)行文件) 。 Tjy 平坦軟件園在 Unix 首次在 PDP-7 運行后不久, Doug McIlroy 在 1969 年創(chuàng)造了新系統(tǒng)的第一個新語言:一個 McClure 的 TMGMcClure65實現(xiàn)TMG 是一種編寫編譯器(更普通來說,TransMoGrifiers ) 的語言, 通過在一個混合過程元素, 上下文無關(guān)的語法標記的自 頂而下,遞歸降解的風格。McIlroy 和 Bob Morris 使用 TMG 為8 / 25Multics 編寫了

14、早期的 PL/I 編譯器。 Tjy 平坦軟件園為了挑戰(zhàn) McIlroy 重新生成 TMG 勺技巧,Thmopson 決定 Unix當時可能還沒有取這個名字需要一種系統(tǒng)編程語言。 在 很快用 Fortran 嘗試一番后, 相反,他創(chuàng)造了一種他自己的語言, 他命名為 Bo B 可以認為是沒有類型的 C。更準確,它是被擠進了 8K 字節(jié)內(nèi)存,經(jīng)過 Thompson 大腦過濾的 BCPL 它的名字最 有 可能表示 BCPL 的縮寫,盡管另 一種理論 認為它 繼承自 Bon Thompson69,一個 Thompson 在 Multics 的那些日子創(chuàng)造 的不相關(guān)的語言。Bon可能是以他妻子 Bonni

15、e 的名字, 或者(根 據(jù)它的手冊中的一個encyclopedia 引用)以一種具有咕隆咕隆 發(fā)音的神奇儀式的宗教命名的。 Tjy 平坦軟件園起源:語言BCPL 由 Martin Richards 于 1960 年代中期在訪問麻省理工 學院時設(shè)計,在 1970 年代早期被用在幾個有趣的項目中,其中 包括牛津大學的 0S6 操作系統(tǒng)Stoy 72, 和施樂公司 PARC 研究 中心創(chuàng)造性的 Alto上的部分工作 Thacker 79 。因為 Richards 工作過的麻省理工學院的CTSS 系統(tǒng)Corbato 62被用于 Multics 開發(fā),我們也熟悉該語言。最初9 / 25的BCPL 編譯器

16、被 Rudd Canaday和貝爾實驗室的一些人們遷移到Multics 和 GE-635 GECOS統(tǒng)Canaday 69 ;在 Multics 的生命在貝爾實驗室的最后痛苦掙扎 中,它很快成了那些以后參與 Unix 的人們選擇的語言。 Tjy 平 坦軟件園BCPL, B 和 C 全都嚴格符合以 Fortran 和 Algol 60 代表的傳統(tǒng)過程類型語言。它們都面向系統(tǒng)編程、小、定義簡潔,以及 可被簡單編譯器翻譯。 它們接近機器, 它們引入的抽象以傳統(tǒng)計 算機提供的具體數(shù)據(jù)類型和操作為基礎(chǔ), 它們依賴于輸入輸出庫 例程,與操作系統(tǒng)的其它交互。盡管并未成功,它們還使用庫程 序指定其他有趣的控制結(jié)構(gòu),如協(xié)程和過程關(guān)閉。同時,它們的 抽象層次足夠高, 足夠用心的話,能達到機器間的可移植性。 Tjy 平坦軟件園BCPL, B 和 C 在語法上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論