1.1 C語言發(fā)展史
1.1.1 程序語言簡(jiǎn)述
在講解C語言的發(fā)展歷程之前,先來了解程序語言的發(fā)展歷程。程序語言的發(fā)展一共經(jīng)歷了如下3個(gè)階段。
機(jī)器語言
機(jī)器語言是低級(jí)語言,也稱為二進(jìn)制代碼語言。計(jì)算機(jī)使用的是由0和1組成的二進(jìn)制數(shù),組成的一串指令來表達(dá)計(jì)算機(jī)的語言。機(jī)器語言的特點(diǎn)是,計(jì)算機(jī)可以直接識(shí)別,不需要進(jìn)行任何的翻譯。
匯編語言
匯編語言是面向機(jī)器的程序設(shè)計(jì)語言。用英文字母或者符號(hào)串來替代機(jī)器語言的二進(jìn)制碼,就把不易理解和使用的機(jī)器語言變成匯編語言。使用匯編語言比機(jī)器語言方便閱讀和理解程序。
高級(jí)語言
由于匯編語言依賴于硬件體系,并且匯編語言中的助記符號(hào)數(shù)量比較多。為了使程序語言能更貼近人類的自然語言,同時(shí)又不依賴于計(jì)算機(jī)硬件,于是,產(chǎn)生了高級(jí)語言。這種語言的語法形式類似于英文,并且因?yàn)檫h(yuǎn)離對(duì)硬件的直接操作,使得普通人易于理解與使用。其中影響較大、使用普遍的有FORTRAN、ALGOL、BASIC、COBOL、LISP、Pascal、PROLOG、C、C++、VC、VB、Delphi和Java等。
1.1.2 C語言歷史
從程序語言的發(fā)展過程可以看出,以前的操作系統(tǒng)等系統(tǒng)軟件主要是用匯編語言編寫的,但是由于匯編語言依賴于計(jì)算機(jī)硬件,程序的可讀性和可移植性都不是很好,所以為了提高可讀性和可移植,人們開始尋找一種語言,這種語言應(yīng)該既具有高級(jí)語言的特性,又不失低級(jí)語言的好處。于是,在這種需求下產(chǎn)生了C語言。
C語言是由UNIX的研制者丹尼斯·里奇(Dennis Ritchie)和肯·湯普遜(Ken Thompson)于1970年在研制出的BCPL語言(簡(jiǎn)稱B語言)的基礎(chǔ)上發(fā)展和完善起來的。19世紀(jì)70年代初期,AT&T Bell實(shí)驗(yàn)室的程序員Dennis Ritchie第一次把B語言改為C語言。
最初,C語言運(yùn)行于AT&T的多用戶、多任務(wù)的UNIX操作系統(tǒng)上。后來,Ritchie用C語言改寫了UNIX C的編譯程序,UNIX操作系統(tǒng)的開發(fā)者Ken Thompson又用C語言成功地改寫了UNIX,從此開創(chuàng)了編程史上的新篇章。UNIX成為第一個(gè)不是用匯編語言編寫的主流操作系統(tǒng)。
1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)委員會(huì)(ANSI)對(duì)C語言進(jìn)行了標(biāo)準(zhǔn)化,于1983年頒布了第一個(gè)C語言草案(83ANSI C),后來于1987年又頒布了另一個(gè)C語言標(biāo)準(zhǔn)草案(87ANSI C),最新的C語言標(biāo)準(zhǔn)C99在1999年頒布,并在2000年3月被ANSI采用。但是由于未得到主流編譯器廠家的支持,C99也并未得到廣泛使用。
C語言發(fā)展于大型商業(yè)機(jī)構(gòu)和學(xué)術(shù)界的研究實(shí)驗(yàn)室,當(dāng)開發(fā)者們?yōu)榈谝慌_(tái)個(gè)人計(jì)算機(jī)提供C編譯系統(tǒng)之后,C語言就得以廣泛傳播,為大多數(shù)程序員所接受。對(duì)MS-DOS操作系統(tǒng)來說,系統(tǒng)軟件和實(shí)用程序都是用C語言編寫的。Windows操作系統(tǒng)大部分也是用C語言編寫的。
C語言是一種面向過程的語言,同時(shí)具有高級(jí)語言和匯編語言的優(yōu)點(diǎn),它可以廣泛應(yīng)用于不同的操作系統(tǒng),如UNIX、MS-DOS、Microsoft Windows及Linux等。
在C語言的基礎(chǔ)上發(fā)展起來的有支持多種程序設(shè)計(jì)風(fēng)格的C++語言、網(wǎng)絡(luò)上廣泛使用的Java、JavaScript、微軟的C#語言等,學(xué)好C語言,再學(xué)習(xí)其他語言時(shí)就會(huì)很輕松。
說明:目前最流行的C語言有Microsoft C(MS C)、Borland Turbo C(Turbo C)、AT&T C。
1.2 C語言的特點(diǎn)
C語言是一種通用的程序設(shè)計(jì)語言,主要用來進(jìn)行系統(tǒng)程序設(shè)計(jì),具有很多特點(diǎn),下面分別進(jìn)行介紹。
高效性
談到高效性,不得不說C語言是“魚與熊掌”兼得。從C語言的發(fā)展歷史也可以看出,它繼承了低級(jí)語言的優(yōu)點(diǎn),產(chǎn)生了高效的代碼,并具有友好的可讀性和編寫性。一般情況下,C語言生成的目標(biāo)代碼運(yùn)行效率比匯編程序低10%~20%。
靈活性
C語言中的語法不拘一格,在原有語法基礎(chǔ)上進(jìn)行創(chuàng)造、復(fù)合,給程序員更多的想象和發(fā)揮的空間。
功能豐富
除了C語言所具有的類型外,還可以使用豐富的運(yùn)算符和自定義的結(jié)構(gòu)類型,來表達(dá)任何復(fù)雜的數(shù)據(jù)類型,很好地完成所需要的功能。
表達(dá)力強(qiáng)
C語言的語法形式與人們所使用的語言形式相似,書寫形式自由、結(jié)構(gòu)規(guī)范,并且其中的簡(jiǎn)單控制語句可以輕松地控制程序流程,完成復(fù)雜繁瑣的程序要求。
移植性好
因?yàn)镃語言具有良好的移植性,這使得C程序在不同的操作系統(tǒng)下,只需要簡(jiǎn)單地修改或者不用修改就可以進(jìn)行跨平臺(tái)的程序開發(fā)操作。
由于這些特點(diǎn),C語言備受程序員的青睞。