- 相關推薦
C語言的由來與發(fā)展
“C語言是在一種稱為B語言的基礎上,克服了B語言依賴于機器又無數(shù)據(jù)類型等局限性開發(fā)的語言。大家知道C語言是怎么來的嗎?下面yjbys考試網(wǎng)小編為大家普及以下C語言的由來與發(fā)展,希望能夠幫助大家更加了解C語言。
1.1.1. c語言的由來
c語言誕生干19?2年,由美國電話電報公司(AT&T)貝爾實驗室的D. M. Ritchie設計,
并首先在一臺使用UNIX操作系統(tǒng)的DEC PDP-11計算機上實現(xiàn)。
C語言是在一種稱為B語言的基礎上,克服了B語言依賴于機器又無數(shù)據(jù)類型等局限性開發(fā)的語言。在1970年,美國貝爾實驗室的IC. Thompson以BCPL語言為基礎,設計出一種既簡單又接近于硬件的B語言,并用它寫成了第一個UNIX操作系統(tǒng),在PDP-7計算機上實現(xiàn)的。B語言是取了BCPL語言的第一個字母。而BCPL語言(Basic Combined ProgrammingLanguage)是3.967年英國劍橋大學的M. Richard,基于一種CPL語言(combined Program-wing Language)提出的一種改進的語言。而CPL語言又是于1963年英國劍橋大學根據(jù)AL-GOL 8。推出的一種接近硬件的語言。由此可見,G語言的根源可以追溯到ALGOL 60,它的演變過程如下所示:
ALGOL6o(1960年)與CPL(1963年)一BCPL(1967年)iB<3970年)-->C(1972年)
1. 1. 2C語言的發(fā)展
C語言是在人們設想尋找一種既具有一般高級語言的特征,又具有低級語言特點的語言
的情況下應運而生的,它具有人們的這種期望,集中了高級語言和低級語言的優(yōu)點。最初的C語言就是為了描述和實現(xiàn)UNIX操作系統(tǒng)而產(chǎn)生的一種工具語言。1973年,貝爾實驗室的KThampson和D. M. Ri}chie兩人合作使用C語言修改了UNIX操作系統(tǒng),即uNZx第5版本。原來的UNIX操作系統(tǒng)是用匯編語言寫的,改寫后UNIX操作系統(tǒng)中90%以上使用了C語言。從此,C語言的命運與UNIX操作系統(tǒng)便有著密切的聯(lián)系,隨著UNIX操作系統(tǒng)的發(fā)展和推廣,C語言也在被廣泛的使用和發(fā)展。
C語言出世以后。在應用中不斷的改進。在1975年UN1X第6版本公布以后,C語言開始引起人們的注意,它的優(yōu)點逐步被人們所認識。1977年出現(xiàn)了與具體機器無關的C語言編譯文本,推動了UNIX操作系統(tǒng)在各種機器上的迅速地實現(xiàn)。隨著UNIX的日益廣泛的使用,C語言也得到了迅速的推廣。1978年以后,C語言先后被移植到大、中、小和微型機上,它很快成為世界上應用最廣泛的計算機語言之一。
1978年又推出UNIX第8版本,以該版本中的C編譯程序為基礎,B. W. Ketnigha。和D. M. Ritchie合作(被稱為K&R)出版}}The C Programming Language}(C程序設計語言)一書,被稱為標準C 1983年,ANSI(美國國家標準化協(xié)會)對G語言的各種版本進行了擴充,推出了新的標準,被稱為ANSI . 它比原來的標準C有了改進和擴充。1987年,ANSI又公布了87ANSZC新版本。目前流行的各種c語言編譯系統(tǒng)的版本大多數(shù)都以此為基礎,但各有其不同。當前微機上使用的C語言編譯系統(tǒng)多為Microsoft C, Turbo C, Borland C和QuickC等,它們略有差異,按標準C書寫的程序,基本上都可運行。讀者要了解不同版本的編譯系統(tǒng)的特點和區(qū)別可參閱有關的操作說明書。
C語言的特點
1.C語言是一種結構化的程序設計語言
結構化程序設計的優(yōu)點是便于分工合作,便于調試、維護和擴充。這種程序設計方法是將一個大程序分成若千個模塊,每個模塊完成一個功能,由一個總控模塊來控制和協(xié)調各個模塊來實現(xiàn)總的功能;因此,這種程序設計方法又稱為模塊化程序設計方法。在C語言中,函數(shù)是構成C諳言程序的最小模塊。實際上,C語言的程序是由一個或者多個文件組成的,每個文件叉是由一個或多個函數(shù)組成的。因此,一個程序是由一個或多個函數(shù)組成的,其中,須有且僅有一個主函數(shù),生函數(shù)的名字規(guī)定為rnain() o這樣,組成一個程序的者干個文件中,僅有一個是主文件,只有主艾件中才含有main ( )函數(shù)。另外,函數(shù)是由若干條語句組成的,語句是由若干個單詞組成的‘單詞是由若干個字符組成的。字符是構成程序的最小單元。e語言程序的構成如下所示:
程序~文件~函數(shù)~語句~單詞、字符。
C語言是結構化程序設計語言,它具有構成三種基本結構模式的語句,這種結構化程序設計應具有的三種基本結構模式如下:
順序結構棋式
它將由若干條順序執(zhí)行的語句構成,這是程序設計的最基本形式。
分支結構模式
C語言中具有條件語句和開關語句,它將會構成各種需要的分支結構模式。
循環(huán)結構模式
C語言中提供了三種循環(huán)語句(for循環(huán),whil。循環(huán)和do-while循環(huán)),用它們可以構成
各種循環(huán)結構模式。
在講述C語言是一種結構化程序設計語言的同時,還必須指出它與其他結構化程序設計語言(如PASCAL語言)相比較,還有一些不完全之處,因此,C語言是一種不完全的結構化程序設計語言。其表現(xiàn)如下:
第一,完全的結構化程序設計語言不允許使用goto語句,因為goto語句會破壞結構化。
但是。got。語句在某些時候會使得程序簡練,因此,在C語言中原則上允許使用goto語句,為了減少它對結構化的影響,采取了限制使用的辦法,即規(guī)定got。語句的轉向范圍只能在一個函數(shù)體內(nèi)。不得使用gates語句從一個函數(shù)體內(nèi)轉向到另一個函數(shù)體中,這種限制性地使用goto語句會給編程帶來一些方便,又不會影響棋塊之間的結構化。但是,建議在G語言的程序中盡量少使用goto語句。
第二,完全的結構化程序設計語言要求一個模塊只有一個入口和一個出口,這樣便于結構化的管理。但是,C語言程序中允許函數(shù)使用多個返回語句(return語句),即允許函數(shù)有多個出口,返回到調用函數(shù)。這樣做也是為了編程中的方便。在C語言程序中,可以使用條件語句來返回不同的函數(shù)值。
由此可見,C語言雖然是一個不夠嚴格的結構化程序設計語言,但它是一個使用起來十分靈活的高級語言。
C語言的語法結構
順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。
例如:a=3,b=5,現(xiàn)交換a、b的值,這個問題就好像交換兩個杯子里面的水,這當然要用到第三個杯子,假如第三個杯子是c,那么正確的程序為:c=a;a=b;b=c,執(zhí)行結果是a=5,b=c=3,如果改變其順序,寫成:a=b;c=a;b=c;則執(zhí)行結果就變成a=b=c=5,不能達到預期的目的,初學者最容易犯這種錯誤。順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算、輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s=3.14159*r*r,輸出圓的面積s。不過大多數(shù)情況下順序結構都是作為程序的一部分,與其它結構一起構成一個復雜的程序,例如分支結構中的復合語句、循環(huán)結構中的循環(huán)體等。
選擇結構
順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對于要先做判斷再選擇的問題就要使用選擇結構。選擇結構的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴格按照語句出現(xiàn)的物理順序。選擇結構的程序設計方法的關鍵在于構造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當?shù)倪x擇語句。選擇結構適合于帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然后根據(jù)程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易于理解。
循環(huán)結構
循環(huán)結構可以減少源程序重復書寫的工作量,用來描述重復執(zhí)行某段算法的問題,這是程序設計中最能發(fā)揮計算機特長的程序結構,C語言中提供四種循環(huán),即goto循環(huán)、while循環(huán)、do while循環(huán)和for循環(huán)。四種循環(huán)可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環(huán),因為強制改變程序的順序經(jīng)常會給程序的運行帶來不可預料的錯誤。
特別要注意在循環(huán)體內(nèi)應包含趨于結束的語句(即循環(huán)變量值的改變),否則就可能成了一個死循環(huán),這是初學者的一個常見錯誤。
三個循環(huán)的異同點:用while和do while循環(huán)時,循環(huán)變量的初始化的操作應在循環(huán)體之前,而for循環(huán)一般在語句1中進行的;while循環(huán)和for循環(huán)都是先判斷表達式,后執(zhí)行循環(huán)體,而do while循環(huán)是先執(zhí)行循環(huán)體后判斷表達式,也就是說do while的循環(huán)體最少被執(zhí)行一次,而while循環(huán)和for就可能一次都不執(zhí)行。另外還要注意的是這三種循環(huán)都可以用break語句跳出循環(huán),用continue語句結束本次循環(huán),而goto語句與if構成的循環(huán),是不能用break和continue語句進行控制的。
順序結構、分支結構和循環(huán)結構并不彼此孤立的,在循環(huán)中可以有分支、順序結構,分支中也可以有循環(huán)、順序結構,其實不管哪種結構,均可廣義的把它們看成一個語句。在實際編程過程中常將這三種結構相互結合以實現(xiàn)各種算法,設計出相應程序,但是要編程的問題較大,編寫出的程序就往往很長、結構重復多,造成可讀性差,難以理解,解決這個問題的方法是將C程序設計成模塊化結構。
【C語言的由來與發(fā)展】相關文章:
硬盤是由來及發(fā)展10-17
C語言的結構10-14
C語言和C++的分別06-18
C語言考點精選06-29
C語言的應用05-29
C語言試題08-02
什么是C語言07-27
C語言試題11-01
怎樣學習c++c語言編程10-26
c語言入門經(jīng)典程序08-01