首頁>Club>
它們都是用什麼編寫的?
3
回覆列表
  • 1 # 搬磚程式設計師

    c語言之前是有a語言和b語言的,我這裡的答案,參考了知乎上面的答案。

    我在知乎上看到了一張截圖,關於c語言(應該是大學教程的第一章)的發展過程的,大致如下:

    最開始的祖先是ALGOL 60(也就是a語言),但是這種語音並不能直接對硬體進行操作。

    於是,經過幾次修改和簡化,ALGOL60>CPL>BCPL>B語言,而且第一個Unix作業系統就是用B語言開發而來。

    B語言對於硬體有非常好的支援,然而,卻有個非常大的缺點,沒有資料型別,於是在進過改進,又發明了C語言。

    C語言保持了非常好的硬體支援,而且增加了資料型別的概念。

    a,b,c語言是什麼編寫而成?

    A語言:毫無疑問是用匯編語言,我在百科上看到它是在計算機史上首批清晰定義的高階語言(與現在的高階語言有差異)。

    B語言:它是用匯編語言和A語言編寫而成,並且可以說是早期的c語言。

    C語言:它是透過B語言不斷編寫,擴充套件而來,我記得之前看到過一篇關於c語言是用什麼寫的的回答,大致是這樣說的,c語言是透過最開始用匯編語言寫出來的一個編譯器(所說應該就是B語言),然後不斷去用這個最初的編譯器去擴充套件自己,也就是從第一代C語言到第二代C語言再到很多很多代C語言,直到現在的c語言。這也被稱作自舉性(很少有語言實現了自舉性)。

  • 2 # 蟲蟲安全

    實際上沒有A語言叫法。

    B語言

    B語言是貝爾實驗室的計算機先驅Ken Thompson 和 Dennis Ritchied與1969年設計開發。他們的主要其他功績還有Unix作業系統和C語言。可以說C語言就是改進化的B語言(B->New B ->C),這在筆者另一個回答“C語言是用C語言開發”中有過說明。

    B語言由Ken Thompson設計開發,後由他的老夥計老丹執筆開發,設計最初是為了使用Multics。

    B語言設計用來支援遞迴、無型別、獨立於機器的應用,比如作業系統,程式語言等。

    B語言主要集成了BLCP的衣缽,但對其做了較大精簡

    B語言主要的變化

    B語言設計時候充分體現了Thompson關於典型應用中應該儘可能減少非空行數的宗旨。類ALGOL語言的一些語法修改了:

    用“=”取代了了“:=”做為賦值運算子,相等判斷語句用“==“。

    Thompson還引入了加賦值語句(做加操作,並賦值)”a =+ b“(注意這個C語言中的“+=”順序是不一樣的)。“++”連增和“--”連減語句。

    B語言是無型別語言,或者說只有一個型別:word。加減乘除等大多數的語句都中都被當作是整型計算,其他的操作的都是記憶體地址,對其進行解引用。其他方面和C語言都是一樣的,設定很多內建的函式庫和C語言的標準I/O庫是一樣的(這正好說明C就是B,嘿嘿)。

    B語言最早是用在DEC PDP-7和PDP-11等早期的Unix小型機上以及使用 GCOS作業系統的霍尼威爾GE-645上。早期是PDP-7小型機編譯為threaded code的,後來Ritchie用TMG語言寫了一個編譯器把它編譯為機器碼。

    1970年Ken Thompson 和 Dennis Ritchied收購一臺PDP-1,threaded code用於埠、一個彙編的dc程式以及用B編譯的B語言用來起推動了這太小機,就是這臺機器為C語言的誕生立下了汗馬功勞。用它的Ritchie 寫了早期的yacc程式。

    B語言寫的Mud遊戲,可能大多數人都不知道Mud遊戲,但是這個基於文字的現實模擬遊戲確實非常有有意思,當年都玩過,也自己改過,可以說這個是現代網路遊戲的鼻祖,尤其是Web遊戲,不就是在Mud基礎上加了一些圖片麼?

    Ken Thompson寫的一個B語言例項:

    B語言仍然在發揮餘熱

    按理來說B語言在完成C語言後就完成使命了,壽終正寢了才對。以至於,現在只有瞭解C語言歷史的人才知道B語言。但是實際上B語言還在發揮餘熱呢?

    由於B語言支援擴充套件的類庫、工具、沒有額外授權成本;足夠簡單,足夠勝任。所以在一些微小型硬體系統上任然有再用。現在還在用的GCOS mainframe。

  • 中秋節和大豐收的關聯?
  • 網頁收藏夾在哪裡?