更新時(shí)間:2020年04月20日14時(shí)16分 來(lái)源:傳智播客 瀏覽次數(shù):
C語(yǔ)言是一種高級(jí)程序設(shè)計(jì)語(yǔ)言,具有簡(jiǎn)潔、緊湊、高效等特點(diǎn)。它既可以用于編寫應(yīng)用軟件,也可以用于編寫系統(tǒng)軟件。自1973年問(wèn)世以來(lái),C語(yǔ)言迅速發(fā)展并成為最受歡迎的編程語(yǔ)言之一,下面我們?cè)敿?xì)介紹下C語(yǔ)言的發(fā)展史和C語(yǔ)言的標(biāo)準(zhǔn)。
早期的系統(tǒng)軟件設(shè)計(jì)均采用匯編語(yǔ)言,例如,大家熟知的UNIX操作系統(tǒng)。盡管匯編語(yǔ)言在可移植性、可維護(hù)性等方面遠(yuǎn)遠(yuǎn)不及高級(jí)語(yǔ)言,但是一般的高級(jí)語(yǔ)言有時(shí)難以實(shí)現(xiàn)匯編語(yǔ)言的某些功能。那么,能否設(shè)計(jì)出一種集匯編語(yǔ)言和高級(jí)語(yǔ)言優(yōu)點(diǎn)于一身的語(yǔ)言呢?于是C語(yǔ)言就應(yīng)運(yùn)而生了。
C語(yǔ)言的發(fā)展頗為有趣,它的原型是 ALGOL 60語(yǔ)言(也稱A語(yǔ)言)。
1963年,劍橋大學(xué)將 ALGOL 60語(yǔ)言發(fā)展成為CPL( Combined Programming Language)語(yǔ)言。
1967年,劍橋大學(xué)的馬丁·理查茲( Matin Richards)對(duì)CPL語(yǔ)言進(jìn)行了簡(jiǎn)化,于是產(chǎn)生了BCPL語(yǔ)言。
1970年,美國(guó)貝爾實(shí)驗(yàn)室的肯·湯普森( Ken Thompson)將BCPL進(jìn)行了修改,并為它起了一個(gè)有趣的名字“B語(yǔ)言”,其含義是將CPL語(yǔ)言煮干,提煉出它的精華,并且他用B語(yǔ)言寫了第一個(gè)UNIX操作系統(tǒng)。
1973年,美國(guó)貝爾實(shí)驗(yàn)室的丹尼斯·里奇( Dennis M.Ritch)在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了一種新的語(yǔ)言,他取了BCPL的第2個(gè)字母作為這種語(yǔ)言的名字,即C語(yǔ)言。
1978年,布賴恩·凱尼漢( Brian W Kernighan)和丹尼斯·里奇( Dennis M. Ritchie)出版了名著《The C Programming Language》。從而使C語(yǔ)言成為目前世界上流行最廣泛的高級(jí)程序設(shè)計(jì)語(yǔ)言。推薦了解黑馬程序員C++培訓(xùn)課程。
隨著微型計(jì)算機(jī)的日益普及,出現(xiàn)了許多C語(yǔ)言版本。由于沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),使得這些C語(yǔ)言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)(ANSI)為C語(yǔ)言制定了一套ANSI標(biāo)準(zhǔn),即C語(yǔ)言標(biāo)準(zhǔn)。
在1989年美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)(ANS1)通過(guò)的C語(yǔ)言標(biāo)準(zhǔn)ANSI X3.159-1989被稱為C89。之后在190年,國(guó)際標(biāo)準(zhǔn)化組織ISO也接受了同樣的標(biāo)準(zhǔn)ISO9899-1990,該標(biāo)準(zhǔn)被稱為C90。
這兩個(gè)標(biāo)準(zhǔn)只有細(xì)微的差別,因此,通常來(lái)講C89和C90指的是同一個(gè)版本。后來(lái)隨著時(shí)代的發(fā)展,1990年ANSI又通過(guò)了C99標(biāo)準(zhǔn)。C99標(biāo)準(zhǔn)相對(duì)C89做了很多修改,例如,變量聲明可以不放在函數(shù)開(kāi)頭,支持變長(zhǎng)數(shù)組等。但由于很多編譯器仍然沒(méi)有對(duì)C9提供完整的支持,因此本書將按照C8標(biāo)準(zhǔn)來(lái)進(jìn)行講解,在適當(dāng)時(shí)會(huì)補(bǔ)充C9準(zhǔn)的規(guī)定和用法。
猜你喜歡
C語(yǔ)言運(yùn)算符優(yōu)先級(jí)詳解[C++培訓(xùn)]
2020-03-31Linux操作系統(tǒng)網(wǎng)絡(luò)配置方法[C++培訓(xùn)]
2020-03-31C++ namespace用法詳細(xì)介紹[C++培訓(xùn)]
2020-03-31C++代碼區(qū)、全局區(qū)、棧區(qū)、堆區(qū)的詳細(xì)介紹 [C++培訓(xùn)]
2020-03-31飛機(jī)大戰(zhàn)游戲制作教程[C++培訓(xùn)]
2020-01-16Linux系統(tǒng)下如何檢測(cè)內(nèi)存泄露?[C語(yǔ)言培訓(xùn)]
2020-01-16北京校區(qū)