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