2021-11-26 10:56:25|已瀏覽:267次
C語言之所以命名為C,是因為 C語言源自Ken Thompson發(fā)明的B語言,而 B語言則源自BCPL語言。
1967年,劍橋大學(xué)的Martin Richards對CPL語言進行了簡化,于是產(chǎn)生了BCPL(Basic Combined Programming Language)語言。
20世紀(jì)60年代,美國AT&T公司貝爾實驗室(AT&T Bell Laboratory)的研究員Ken Thompson閑來無事,手癢難耐,想玩一個他自己編的,模擬在太陽系航行的電子游戲——Space Travel。他背著老板,找到了臺空閑的機器——PDP-7。但這臺機器沒有操作系統(tǒng),而游戲必須使用操作系統(tǒng)的一些功能,于是他著手為PDP-7開發(fā)操作系統(tǒng)。后來,這個操作系統(tǒng)被命名為——UNIX。
1970年,美國貝爾實驗室的 Ken Thompson,以BCPL語言為基礎(chǔ),設(shè)計出很簡單且很接近硬件的B語言(取BCPL的首字母)。并且他用B語言寫了第一個UNIX操作系統(tǒng)。
1971年,同樣酷愛Space Travel的Dennis M.Ritchie為了能早點兒玩上游戲,加入了Thompson的開發(fā)項目,合作開發(fā)UNIX。他的主要工作是改造B語言,使其更成熟。
1972年,美國貝爾實驗室的 D.M.Ritchie 在B語言的基礎(chǔ)上最終設(shè)計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
1973年初,C語言的主體完成。Thompson和Ritchie迫不及待地開始用它完全重寫了UNIX。此時,編程的樂趣使他們已經(jīng)完全忘記了那個"Space Travel",一門心思地投入到了UNIX和C語言的開發(fā)中。隨著UNIX的發(fā)展,C語言自身也在不斷地完善。直到今天,各種版本的UNIX內(nèi)核和周邊工具仍然使用C語言作為最主要的開發(fā)語言,其中還有不少繼承Thompson和Ritchie之手的代碼。
在開發(fā)中,他們還考慮把UNIX移植到其他類型的計算機上使用。C語言強大的移植性(Portability)在此顯現(xiàn)。機器語言和匯編語言都不具有移植性,為x86開發(fā)的程序,不可能在Alpha,SPARC和ARM等機器上運行。而C語言程序則可以使用在任意架構(gòu)的處理器上,只要那種架構(gòu)的處理器具有對應(yīng)的C語言編譯器和庫,然后將C源代碼編譯、連接成目標(biāo)二進制文件之后即可運行。
1977年,Dennis M.Ritchie發(fā)表了不依賴于具體機器系統(tǒng)的C語言編譯文本《可移植的C語言編譯程序》。
C語言繼續(xù)發(fā)展,在1982年,很多有識之士和美國國家標(biāo)準(zhǔn)協(xié)會為了使這個語言健康地發(fā)展下去,決定成立C標(biāo)準(zhǔn)委員會,建立C語言的標(biāo)準(zhǔn)。委員會由硬件廠商,編譯器及其他軟件工具生產(chǎn)商,軟件設(shè)計師,顧問,學(xué)術(shù)界人士,C語言作者和應(yīng)用程序員組成。1989年,ANSI發(fā)布了第一個完整的C語言標(biāo)準(zhǔn)——ANSI X3.159—1989,簡稱“C89”,不過人們也習(xí)慣稱其為“ANSI C”。C89在1990年被國際標(biāo)準(zhǔn)組織 ISO(International Standard Organization)一字不改地采納,ISO官方給予的名稱為:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被簡稱為“C90”。1999年,在做了一些必要的修正和完善后,ISO發(fā)布了新的C語言標(biāo)準(zhǔn),命名為ISO/IEC 9899:1999,簡稱“C99”。[2]在2011年12月8日,ISO又正式發(fā)布了新的標(biāo)準(zhǔn),稱為ISO/IEC9899: 2011,簡稱為“C11”。
特有特點:
C語言是一個有結(jié)構(gòu)化程序設(shè)計、具有變量作用域(variable scope)以及遞歸功能的過程式語言。
C語言傳遞參數(shù)均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
不同的變量類型可以用結(jié)構(gòu)體(struct)組合在一起。
只有32個保留字(reserved keywords),使變量、函數(shù)命名有更多彈性。
部份的變量類型可以轉(zhuǎn)換,例如整型和字符型變量。
通過指針(pointer),C語言可以容易的對存儲器進行低級控制。
預(yù)編譯處理(preprocessor)讓C語言的編譯更具有彈性。
本文由培訓(xùn)無憂網(wǎng)達內(nèi)教育課程顧問老師整理發(fā)布,更多課程信息可關(guān)注C語言培訓(xùn)或添加老師微信:15033336050
注:尊重原創(chuàng)文章,轉(zhuǎn)載請注明出處和鏈接 http://www.dedgn.cn/news-id-4995.html 違者必究!部分文章來源于網(wǎng)絡(luò)由培訓(xùn)無憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實性請自行核實或聯(lián)系我們,了解更多相關(guān)資訊請關(guān)注c語言頻道查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費申請試課。關(guān)注官方微信了解更多:150 3333 6050