1.3.1 C語言的歷史
C語言的原型可以追溯到ALGOL 60語言(也稱為A語言)。ALGOL語言是計算機發展史上首批產生的高級語言。1960年1月,圖靈獎獲得者艾倫·佩利(Alan J. Perlis)在巴黎舉行的有全世界一流軟件專家參加的討論會上,發表了《算法語言ALGOL 60報告》,確定了程序設計語言ALGOL 60。ALGOL 60是程序設計語言發展史上的一個里程碑,它標志著程序設計語言成為一門獨立的科學學科,并為后來軟件自動化及軟件可靠性的發展奠定了基礎。但是ALGOL 60是一種遠離硬件的語言,因此不適合用來編寫系統程序。
1963年,劍橋大學將ALGOL 60語言發展成為CPL (Combined Programming Language)語言。1967年,劍橋大學的Matin Richards對CPL語言進行了簡化,于是產生了BCPL語言(Basic Combined Programming Language)。
1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,并為它起了一個有趣的名字“B語言”,并且Ken Thompson還用B語言寫了第一個UNIX操作系統。但是B語言的缺點是太過簡單,功能有限。
到了1973年,美國貝爾實驗室的D. M. Ritchie在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。同年,D. M. Ritchie和K. Thompson兩人合作將UNIX的絕大部分用C語言進行了重寫,這就是UNIX第5版。C語言自誕生那天起就注定是不平凡的,它從B語言那里繼承了精簡且接近硬件的優點,但又在此基礎上進行了充實,使得功能上更加完善。
C語言的成長與UNIX具有密切的關系,C語言真正引起世人注意的是在UNIX第6版發布之后。為了推廣UNIX操作系統,1977年,D. M. Ritchie發表了不依賴于具體機器系統的C語言編譯文本《可移植的C語言編譯程序》,即著名的ANSI C。
1978年,美國電話電報公司(AT&T)貝爾實驗室正式發布了C語言。同時由B. W. Kernighan和D. M. Ritchit合著的《The C Programming Language》一書完成,該書所介紹的C語言成為后來被廣泛使用的C語言版本的基礎。后來由美國國家標準協會(American National Standards Institute)在此基礎上制定了一個C語言標準,于1983年發布,通常稱之為ANSI C。
1987年,ANSI又公布了C語言的新標準——87 ANSI C。1988年,隨著微型計算機的普及,C語言出現了許多版本。由于沒有統一的標準,使得這些C語言之間出現了一些不一致的地方。直到1990年,國際標準化組織(ISO)接受了87 ANSI C為ISO C的標準,目前流行的C編譯系統都是以此為基礎的。
C語言的產生過程如圖1-11所示。

圖1-11 C語言的產生過程