學(xué)習(xí)啦 > 知識(shí)大全 > 原因大全 > c語言產(chǎn)生的原因

c語言產(chǎn)生的原因

時(shí)間: 曾揚(yáng)892 分享

c語言產(chǎn)生的原因

  C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。那么c語言產(chǎn)生的原因有什么呢?下面是學(xué)習(xí)啦小編精心為你整理的c語言產(chǎn)生的原因,一起來看看。

  c語言產(chǎn)生的原因

  1967年,劍橋大學(xué)的Martin Richards對(duì)CPL語言進(jìn)行了簡(jiǎn)化,于是產(chǎn)生了BCPL(Basic Combined Programming Language)語言。

  20世紀(jì)60年代,美國(guó)AT&T公司貝爾實(shí)驗(yàn)室(AT&T Bell Laboratory)的研究員Ken Thompson閑來無事,手癢難耐,想玩一個(gè)他自己編的,模擬在太陽系航行的電子游戲——Space Travel。他背著老板,找到了臺(tái)空閑的機(jī)器——PDP-7。但這臺(tái)機(jī)器沒有操作系統(tǒng),而游戲必須使用操作系統(tǒng)的一些功能,于是他著手為PDP-7開發(fā)操作系統(tǒng)。后來,這個(gè)操作系統(tǒng)被命名為——UNIX。

  1970年,美國(guó)貝爾實(shí)驗(yàn)室的 Ken Thompson,以BCPL語言為基礎(chǔ),設(shè)計(jì)出很簡(jiǎn)單且很接近硬件的B語言(取BCPL的首字母)。并且他用B語言寫了第一個(gè)UNIX操作系統(tǒng)。

  1971年,同樣酷愛Space Travel的Dennis M.Ritchie為了能早點(diǎn)兒玩上游戲,加入了Thompson的開發(fā)項(xiàng)目,合作開發(fā)UNIX。他的主要工作是改造B語言,使其更成熟。

  1972年,美國(guó)貝爾實(shí)驗(yàn)室的 D.M.Ritchie 在B語言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語言,他取了BCPL的第二個(gè)字母作為這種語言的名字,這就是C語言。

  1973年初,C語言的主體完成。Thompson和Ritchie迫不及待地開始用它完全重寫了UNIX。此時(shí),編程的樂趣使他們已經(jīng)完全忘記了那個(gè)"Space Travel",一門心思地投入到了UNIX和C語言的開發(fā)中。隨著UNIX的發(fā)展,C語言自身也在不斷地完善。直到今天,各種版本的UNIX內(nèi)核和周邊工具仍然使用C語言作為最主要的開發(fā)語言,其中還有不少繼承Thompson和Ritchie之手的代碼。

  c語言的特點(diǎn)

  基本特性

  1、高級(jí)語言:它是把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來的工作單元。

  2、結(jié)構(gòu)式語言:結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦阌谑褂?、維護(hù)以及調(diào)試。C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。

  4、代碼級(jí)別的跨平臺(tái):由于標(biāo)準(zhǔn)的存在,使得幾乎同樣的C代碼可用于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。C語言對(duì)編寫需要進(jìn)行硬件操作的場(chǎng)合,優(yōu)于其它高級(jí)語言。

  5、使用指針:可以直接進(jìn)行靠近硬件的操作,但是C的指針操作不做保護(hù),也給它帶來了很多不安全的因素。C++在這方面做了改進(jìn),在保留了指針操作的同時(shí)又增強(qiáng)了安全性,受到了一些用戶的支持,但是,由于這些改進(jìn)增加語言的復(fù)雜度,也為另一部分所詬病。Java則吸取了C++的教訓(xùn),取消了指針操作,也取消了C++改進(jìn)中一些備受爭(zhēng)議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機(jī)中運(yùn)行,運(yùn)行效率低于C++/C。一般而言,C,C++,java被視為同一系的語言,它們長(zhǎng)期占據(jù)著程序使用榜的前三名。

  特有特點(diǎn)

  C語言是一個(gè)有結(jié)構(gòu)化程序設(shè)計(jì)、具有變量作用域(variable scope)以及遞歸功能的過程式語言。

  C語言傳遞參數(shù)均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。

  不同的變量類型可以用結(jié)構(gòu)體(struct)組合在一起。

  只有32個(gè)保留字(reserved keywords),使變量、函數(shù)命名有更多彈性。

  部份的變量類型可以轉(zhuǎn)換,例如整型和字符型變量。

  通過指針(pointer),C語言可以容易的對(duì)存儲(chǔ)器進(jìn)行低級(jí)控制。

  預(yù)編譯處理(preprocessor)讓C語言的編譯更具有彈性。

  優(yōu)點(diǎn)

  1、簡(jiǎn)潔緊湊、靈活方便

  C語言一共只有32個(gè)關(guān)鍵字,9種控制語句,程序書寫形式自由,區(qū)分大小寫。把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來。C 語言可以像匯編語言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。

  2、運(yùn)算符豐富

  C語言的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符。C語言把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C語言的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級(jí)語言中難以實(shí)現(xiàn)的運(yùn)算。

  3、數(shù)據(jù)類型豐富

  C語言的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。并引入了指針概念,使程序效率更高。

  4、表達(dá)方式靈活實(shí)用

  C語言提供多種運(yùn)算符和表達(dá)式值的方法,對(duì)問題的表達(dá)可通過多種途徑獲得,其程序設(shè)計(jì)更主動(dòng)、靈活。它語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大,如對(duì)整型量與字符型數(shù)據(jù)及邏輯型數(shù)據(jù)可以通用等。

  5、允許直接訪問物理地址,對(duì)硬件進(jìn)行操作

  由于C語言允許直接訪問物理地址,可以直接對(duì)硬件進(jìn)行操作,因此它既具有高級(jí)語言的功能,又具有低級(jí)語言的許多功能,能夠像匯編語言一樣對(duì)位(bit)、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元,可用來寫系統(tǒng)軟件。

  6、生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高

  C語言描述問題比匯編語言迅速,工作量小、可讀性好,易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語言相當(dāng)。C語言一般只比匯編程序生成的目標(biāo)代碼效率低10%~20%。

  7、可移植性好

  C語言在不同機(jī)器上的C編譯程序,86%的代碼是公共的,所以C語言的編譯程序便于移植。在一個(gè)環(huán)境上用C語言編寫的程序,不改動(dòng)或稍加改動(dòng),就可移植到另一個(gè)完全不同的環(huán)境中運(yùn)行。

  8、表達(dá)力強(qiáng)

  C語言有豐富的數(shù)據(jù)結(jié)構(gòu)和運(yùn)算符。包含了各種數(shù)據(jù)結(jié)構(gòu),如整型、數(shù)組類型、指針類型和聯(lián)合類型等,用來實(shí)現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。C語言的運(yùn)算符有34種,范圍很寬,靈活使用各種運(yùn)算符可以實(shí)現(xiàn)難度極大的運(yùn)算。

  C語言能直接訪問硬件的物理地址,能進(jìn)行位(bit)操作。兼有高級(jí)語言和低級(jí)語言的許多優(yōu)點(diǎn)。

  它既可用來編寫系統(tǒng)軟件,又可用來開發(fā)應(yīng)用軟件,已成為一種通用程序設(shè)計(jì)語言。

  另外C語言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。

c語言產(chǎn)生的原因相關(guān)文章:

1.什么是溢出 溢出的原因分析

2.微信成功的原因分析

3.淺談教育管理學(xué)畢業(yè)論文

3026473