生活随笔
收集整理的這篇文章主要介紹了
计算机语言之c语言
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 1.語言是什么? 在日常生活中,語言是我們人與人之間溝通交流的一種方式。 既然語言有溝通交流的功能,那么:我們怎么跟計算機進行交流呢?
- ? 我們的計算機只認識電,因為需要插電,計算機才能啟動。所以,如果我們想跟計算機交
- 在計算機中,電流有強有弱,所以我們稱之為高低電平,所以如果我們跟計算機交流可以通 過控制電流的強弱進行。但是,我們覺得每次說高電平,低電平說起來很麻煩,所以干脆就用0和 1來分別代表低電平和高電平(這也是我們傳說中的二進制)。
- 再然后,我們通過0和1的各種不同組合,約定出計算機設備該完成什么功能。就像你跟你女 朋友約定用數字1314代表一生一世,用520代表我愛你一樣,所以此時,我們把這種跟計算機以 0,1的對話方式稱之為機器語言。
- 如,用機器語言描述1+1的方式為00000001 000001100011 00000001 (不準確)
- 再再然后,人們覺得用01的不同組合如:0010011100011011010010000這樣的方式看起來太 復雜太不容易理解,于是聰明又智慧的人們兒又發明了一種更接近人類語言的跟計算機交流的語 言:匯編語言
- 匯編語言使用了一些日常生活中的英文單詞如:add jump等用來代表不同的01組合,因此大大 簡化了跟計算機交流開發新功能的方式。但是呢,因為匯編語言對硬件依賴大,不同的CPU架構 需要編寫不同的匯編指令,再加上其語言也不是特別接近人類語言所以人們又開始思考:能不能 使計算機語言再更加接近人類語言呢?
- 再再再然后,于是高級語言誕生了!! 此時高級語言描述1+1就為:1 + 1
- 無論是匯編語言還是高級語言,其本質最終都是轉換為機器語言來運行的。 但是流程有所不同:
- 高級語言(以C為例):C語言 --> 編譯器 --> 匯編 --> 匯編器 --> 機器語言
- 1969年,那是一個春天......在貝爾實驗室里有一個叫做Ken Thompson的人,他長得雖然沒有 周老師帥,但是人極度聰明。當時貝爾實驗室正在跟美國麻省理工大學以及美國通用電氣公司合 伙開發一款操作系統叫Multics,然后Ken Thompson便利用空閑時間基于Multics上開發了一款游戲 叫<Star Travel>,可是怎么著?最終幾大公司覺得Multics項目進度太慢,而且不看好前景,于是突 然撤資不打算搞了。Ken Thompson好不容易寫的游戲都要沒地方運行了,他可不愿意就此放棄, 于是找來貝爾實驗室里幾乎要報廢的一臺電腦“PDP-7”,想把游戲移植到這臺電腦上,但是沒有 系統怎么辦?這難不倒他,他打算干脆自己寫一個適用于這臺電腦的操作系統,于是他把Multics 項目中的一些思想和一些自己想的一些功能加入到開發里面,憑著這股子蠻勁,終于研發成功, 系統名字叫UNIX。但是一開始,這套系統是用匯編語言寫的,然而用匯編語言寫的操作系統十分 難以調試和改進,于是Thompson意識到需要一種更高級的編程語言來負責完成UNIX系統未來的開 發,于是乎,他設計出了一種語言叫B語言(在BCPL語言基礎上發展來的)
- 再然后,貝爾實驗室意識到UNIX可能會成為一款十分優秀的系統,于是派了一個叫Dennis Ritchie的人(注意,這才是主角)也加入到了UNIX的開發中!并且在1970年為UNIX項目爭取到一 臺PDP-11計算機,但是這時候Dennis Ritchie發現B語言十分不適合用來編寫適合PDP-11計算機的 UNIX系統,因此Dennis Ritchie決定開發B語言的升級版,一開始他覺得這門語言肯定會火,所以起 來了個十分牛逼的名字:NB(New B),再到后來,隨著對NB語言的不斷改進,發現這門新語言 已經越來越脫離B語言,于是他決定改名叫C語言(取BCPL中的第二個字符)。一直到1973年,C 語言足夠穩定,Dennis Ritchie就用C語言來重新編寫UNIX系統了。重新編寫過的UNIX系統有一個非 常重要的好處:可移植性!要知道,在那之前不管是什么系統,都是得為電腦專門匹配設計 的!!而現在,因為全新的UNIX用C語言編寫,當其他計算機想要使用UNIX操作系統時,只需要 為其他類型計算機編寫C語言編譯器就行了!
- C語言的誕生是偶然的,它僅僅只是UNIX系統的附加產物。但是也絲毫掩蓋不了它王者的地 位,看看2014年的語言排行榜:歷經40多年的洗禮,多少語言隨大浪東去,輝煌一陣又迅速湮 滅,唯有C語言,傲視群雄!
- 由于C語言原本就是用來編寫傳統的由匯編語言編寫的應用程序,所以用C語言編寫的程序十 分的高效,另外又由于C語言的編譯器規模小并且還容易編寫,所以當C語言橫空出世后已經超越 了UNIX的界限,運行在不同的操作系統下的多種類型的計算機都開始使用C語言編譯器。
- 但是,由于缺乏編譯器翻譯標準,因此不同的計算機常常會根據某些特性做不同的處理結 果,如果這個時候,放任這種情況的出現最終會導致C語言有各種分支,也即不同的“方言”。再 這個時候,美國國家標準協會(ANSI)看不下去了,決定出手為C語言制定標準。正是因為標準的 出現,才防止了C語言沒有被分裂成不兼容的多種分支!
- 附:以下是C語言幾個重要標準的時間表 1983年,美國國家標準協會(ANSI)成立了一個委員會,根據C語言問世以來各種版本對C語言 的發展
- 和擴充,制定了第一個C語言標準草案(83 ANSI C)。 1989年,ANSI公布了一個完整的C語言標準—ANSI X3.159-1989(常稱ANSI C,或C89)。
- 1990年,國際標準化組織ISO(International Standard Organization) 接受C89作為國際標準 ISO/IEC 9899:1990,它和ANSI的C89基本上是相同的。
- 1999年,ISO又對C語言標準進行修訂,在基本保留原來的C語言特征的基礎上,針對應用的需要,增加 了一些功能,尤其是C++中的一些功能,命名為 ISO/IEC 9899:1999。
- 2001、2004年先后進行了兩次技術修正(TC1和TC2)。
- ISO/IEC 9899:1999(及其技術修正)被稱為 C99。 C99是C89(及1995基準增補1)的擴充。
- C11 :在2011年12月,ANSI 采納了 ISO/IEC 9899:2011 標準。這個標準通常即C11,它是C程序語 言的最新標準
總結
以上是生活随笔為你收集整理的计算机语言之c语言的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。