C語言的原型ALGOL 60語言。(也稱為A語言)
1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programing Language)語言。
1967年,劍橋大學的Martin Richards 對CPL語言進行了簡化,于是產生了BCPL語言。
1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,并為它起了一個有趣的名字“B語言”。意思是將CPL語言煮干,提煉出它的精華。并且他用B語言寫了第一個UNIX操作系統。
而在1972年,B語言也給人“煮”了一下,美國貝爾實驗室的D.M.Ritchie在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴于具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。
1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.Kernighan和D.M.Ritchie合著了著名的《The C Programing Language》一書。通常簡稱為《K&R》,也有人稱之為《K&R》標準。但是,在《K&R》中并沒有定義一個完整的標準C語言,后來由美國國家標準化協會(American National Standards Institute)在此基礎上制定了一個C語言標準,于一九八三年發表。通常稱之為ANSI C。
1987年,隨著微型計算機的日益普及,出現了許多C語言版本。由于沒有統一的標準,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標準化協會(ANSI)為C語言制定了一套ANSI標準——87 ANSI C,成為現行的C語言標準。
1990年,國際標準化組織ISO(International Standard Organization)接受了87 ANSI C 為ISO C 的標準(ISO9899-1990)。1994年,ISO修訂了C語言的標準。
目前流行的C語言編譯系統大多是以ANSI C為基礎進行開發的,但不同版本的C編譯系統所實現的語言功能和語法規則有略有差別。
(1) 簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以像匯編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元。
(2) 運算符豐富
C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括號、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
(3) 數據結構豐富
C語言的數據類型有:整型、實型、字符型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據結構的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
(4)C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便于使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,并具有多種循環、條件語句控制程序流向,從而使程序完全結構化。
(5)C語法限制不太嚴格,程序設計自由度大
雖然C語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。
(6)C語言允許直接訪問物理地址,可以直接對硬件進行操作
因此既具有高級語言的功能,又具有低級語言的許多功能,能夠像匯編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元,可用來寫系統軟件。
(7)生成目標代碼質量高,程序執行效率高
一般只比匯編程序生成的目標代碼效率低10-20%。
(8)C語言適用范圍大,可移植性好
C語言有一個突出的優點就是適合于多種操作系統,如DOS、UNIX;也適用于多種機型。C語言具有強大的繪圖能力,可移植性好,并具備很強的數據處理能力,因此適于編寫系統軟件,三維,二維圖形和動畫,它也是數值計算的高級語言。
(1)C語言的缺點主要表現在數據的封裝性上,這一點使得C在數據的安全性上有很大缺陷,這也是C和C++的一大區別。
(2)C語言的語法限制不太嚴格,對變量的類型約束不嚴格,影響程序的安全性,對數組下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。
新聞熱點
疑難解答