- C語言程序設計與實踐(第3版)
- 謝滿德 凌云等編著
- 1173字
- 2024-05-10 13:55:20
1.4 C語言的發(fā)展歷史、現(xiàn)狀與特點
1.4.1 C語言的發(fā)展歷史和現(xiàn)狀
C語言的發(fā)展歷史可以追溯到1961年的ALGOL 60,它是C語言的祖先。ALGOL 60是一種面向問題的高級語言,與計算機硬件的距離比較遠,不適合用來編寫系統(tǒng)軟件。1963年,英國劍橋大學推出了CPL(Combined Programming Language)。CPL對ALGOL 60進行了改造,在ALGOL 60基礎上接近硬件一些,但是規(guī)模較大,難以實現(xiàn)。1967年,劍橋大學的Martin Richards對CPL進行了簡化,在保持CPL的基本優(yōu)點的基礎上推出了BCPL(Basic Combined Programming Language)。1970~1971年,美國AT&T公司貝爾實驗室的Ken Thompson對BCPL進行進一步簡化,設計出了非常簡單而且很接近硬件的B語言(取BCPL的第一個字母),并用B語言改寫了UNIX操作系統(tǒng)。但B語言過于簡單,且功能有限。1972~1973年,貝爾實驗室的Dennis M.Ritchie在B語言的基礎上設計出了C語言(取BCPL的第二個字母)。C語言既保持了BCPL和B語言的優(yōu)點(精練、接近硬件),又克服了它們的缺點(過于簡單、無數(shù)據(jù)類型等)。最初的C語言只是作為描述和實現(xiàn)UNIX操作系統(tǒng)的一種工作語言而設計的。1973年,Ken Thompson和Dennis M.Ritchie兩人合作把UNIX中90%以上的代碼用C語言改寫,即UNIX第5版(最初的UNIX操作系統(tǒng)全部采用PDP-7匯編語言編寫)。
后來,C語言歷經(jīng)多次改進,但主要還是在貝爾實驗室內(nèi)部使用。直到1975年,UNIX第6版公布以后,C語言的突出優(yōu)點才引起人們的普遍關注。1975年,不依賴于具體機器的C語言編譯文本(可移植C語言編譯程序)出現(xiàn)了,使C語言移植到其他機器時所需做的工作大大簡化,這也推動了UNIX操作系統(tǒng)迅速在各種機器上實現(xiàn)。隨著UNIX的廣泛使用,C語言也迅速得到推廣。C語言和UNIX可以說是一對孿生兄弟,在發(fā)展過程中相輔相成。1978年以后,C語言已先后移植到大、中、小和微型計算機上,已獨立于UNIX和PDP計算機了。
現(xiàn)在,C語言已風靡全世界,成為世界上應用最廣泛的幾種計算機語言之一。許多系統(tǒng)軟件和實用的軟件包,如Microsoft Windows等,都是用C語言編寫的。圖1-3展示了C語言的“家譜”。

圖1-3 C語言的“家譜”
以1978年發(fā)表的UNIX第7版中的C語言編譯程序為基礎,Brian W.Kernighan和Dennis M.Ritchie(合稱K&R)合著了影響深遠的經(jīng)典著作The C Programming Language,這本書中介紹的C語言成為后來廣泛使用的各種C語言版本的基礎,被稱為舊標準C。1983年,美國國家標準協(xié)會(ANSI)根據(jù)C語言問世以來各種版本對C的發(fā)展和擴充制定了新的標準,稱為ANSI C。ANSI C比舊標準C有了很大的發(fā)展。1987年,ANSI又公布了新標準——87 ANSI C,K&R在1988年修訂了他們的經(jīng)典著作The C Programming Language,按照87 ANSI C標準重新寫了該書。目前流行的各種版本的C語言都是以它為基礎的。在隨后的幾年里,C語言標準化委員會又不斷地對C語言進行改進,到了1999年,正式發(fā)布了ISO/IEC 9899:1999,簡稱為C99標準。
目前,在各種不同型號的計算機上,以及不同的操作系統(tǒng)環(huán)境下,出現(xiàn)了多種版本的C語言,如在IBM PC系列微機上使用的就有Microsoft C、Turbo C、Quick C等,雖然這些C語言的基本部分是相同的,但也有各自的特點。它們自身的不同版本之間也略有差異,如Turbo C 2.0與Turbo C 1.5相比增加了一些新的功能,Visual C++中對C語言也修改和提供了一些新的功能。