C語言歷史
早期的操作系統軟件主要是用匯編語言(包括UNIX操作系統在內)編寫的。由於匯編語言依賴於計算機硬件,所以程序的可讀性和可移植性都比較差,所以呢,為了提高操作系統軟件的可讀性和可移植性,最好改用高級語言。但是呢,一些高級語言又難以實現匯編語言的某些功能(匯編語言可以直接對硬件進行操作,例如對內存地址的操作、位操作等)。所以人們希望找到一種兼顧一般高級語言和低級語言的優點的語言,於是,C語言就在這種情況下誕生了。
C語言是在B語言的基礎上發展起來的,它的根源可以追溯到ALGOL60。
1960年出現的ALGOF60是一種面向問題的高級語言,它離硬件比較遠,不宜用來編寫系統程序。
1963年英國劍橋大學推出了CPL語言。CPL語言在ALGOL60的基礎上接近硬件一些,但是規模比較大,難以實現。
1967年英國劍橋大學的Martin Richards對CPL語言做了簡化,推出了BCPL語言。 1970年美國貝爾實驗室的?以BCPL 語言為基礎,又進一步簡化,設計出了很簡單的而且很接近硬件的B語言(取BCPL的第一個字母)。
1971年在PDP 11/20上實現了B語言,並編寫了UNIX操作系統,此時的B語言過於簡單,功能有限。
1972年至1973間,貝爾實驗室的D.M.Ritchie在B語言的基礎上設計出了C語言(取BCPL的第二個字母)。C語言既保持了BCPL和B語言的優點(精煉,接近硬件),又克服了他們的缺點(過於簡單,數據無類型等)。最初的C語言只是為了描述和實現UNIX操作系統提供一種工作語言而設計的。
1973年,Ken Thompson 和D.M.Ritchie合作把UNIX的90%以上用C語言改寫(即UNIX的第5版。原來的UNIX操作系統是1969年由美國的貝爾實驗室的Ken Thompson 和D.M.Ritchie開發成功的,是用匯編語言編寫的)。
1975年UNIX第6版發布後,C語言的沖突優點才引起人們的普遍註意。
1977年出現了不依賴於具體機器的C語言編譯文本《可移植C語言編譯程序》,使C語言移植到其他機器時所需做的工作大大簡化了,這也推動了UNIX操作系統迅速地在各種機器上實現。例如VAX、AT&T等計算機系統都相繼開發了UNIX。隨著UNIX的日益廣泛使用,C語言也迅速得到了推廣。
1978年以後,C語言先後移植到大、中、小、微型計算機上,已獨立於UNIX和PDP了。以1978年發布的UNIX第七版中的C語言編譯程序為基礎,Brain W.Kernighhan和 Dennis M.Ritchie(合稱K&R)合著了影響深遠的名著《The C Programming Language》,這本書中介紹的C語言成為了後來廣泛使用的C語言版本的基礎,它成為事實上的C標準。
1983年,美國國家標準協會(ANSI)根據C語言問世以來各種版本對C語言進行了發展和擴充,公布了第一個C語言標準草案(83 ANSI C)。ANSI C比原來的C有了很大的發展。
K&R在1988年修改了他們的經典著作《The C Programming Language》,按照即將公布的ANSI C重新寫了該書。
1989年,ANSI公布了一個完整的C語言標準-X3.159.1989,簡稱C89. ANSI C現在被幾乎所有廣泛使用的編譯器支持。現在多數C代碼是在ANSI C基礎上寫的。
1990年,國際化標準組織iOS接受C89為IOS C的標準,通稱C90. C90與C89基本相同。
1999年,IOS又修訂了C語言標準,簡稱C99.
目前流行的C語言編譯系統大多是以C89為基礎進行開發的,並未實現C99所建議的所有功能。
美國國家標準學會
(ANSI)American National Standards Institute
國際標準化組織(ISO)
International Organization for Standardization
C語言歷史