計算機速成課 第十一集 編程語言發展史

1. 語言轉換的例子

  • 舉例:有這樣一條指令,它在內存地址是 0: 0010 1110
    • 前四位是操作碼,簡稱 OPCODE
    • 前 4 位 0010 代表 LOAD_A 指令,即把值從內存複製到寄存器 A
    • 後 4 位 1110 是內存地址,1110 是十進制的 14
    • 所以,這 8 位表達的意思是:讀取內存地址 14,放入寄存器 A
  • 它們只是使用了兩種不同的語言,就好像是英語和摩爾斯碼的區別,只是他們的編碼方式不同
    • 摩爾斯碼只有點和線,計算機能處理二進制,二進制是處理器的「母語」
    • 事實上,它們只能理解「二進制」,這叫「機器語言」或「機器碼」

2. 操作碼錶

  • 在計算機早期階段,必須使用機器碼寫程序
    • 具體來講,先在紙上用英語寫一個「高層次版」,這種對程序的高層次描述,叫「僞代碼」
    • 紙上寫好後,用「操作碼錶」把僞代碼轉換成二進制機器碼,然後可以把程序喂入計算機並運行

3. 助記符

  • 出現原因:人們厭煩了上述的操作
  • 1940 - 1950 年代,程序員開發出一種新語言,更可讀,更高層次,每個操作碼分配一個簡單的名字,叫「助記符」
  • 「助記符」後面緊跟數據,形成完整指令
  • 舉例:與其用 0 和 1 寫代碼,程序員可以寫 “LOAD_A 14”,這樣更加容易理解

4. 彙編器

  • CPU 不知道 LOAD_A 14 是什麼,它不能理解文字,只能理解二進制
  • 程序員想了一個技巧,寫二進制程序來幫忙,它可以讀懂文字指令,自動轉成二進制指令,這種程序叫做「彙編器」(assembler)
    • 作用:讀取「彙編語言」寫的程序,然後轉成「機器碼」
    • “LOAD_A 14” 是一個彙編指令的例子
    • 隨着時間的推移,彙編器有更多的功能,讓編程更容易,其中一個功能是自動分析 JUMP 地址
      • 彙編器不用固定跳轉地址,而是讓你插入可跳轉的標籤
      • 當程序被傳入彙編器,彙編器會自己搞定跳轉地址
      • 程序員可以專心編程,不用管底層細節,隱藏不必要細節來做更復雜的工作
  • 彙編只是修飾了一下機器碼,一般來說一條彙編指令對應一條機器指令。所以,彙編碼和底層硬件的連接很緊密
  • 彙編器仍然強迫程序員思考,用什麼寄存器和內存地址

5. 哈佛 1 號計算機

  • 在 1944 年建成,幫助盟軍作戰

6. 算數語言版本 0

  • 戰後,Hopper 設計了一門高級語言,叫「算數語言版本 0」,簡稱「A-0」
  • 彙編與機器指令是一一對應的,但是一行高級編程語言,可能會轉成幾十條二進制指令
  • 爲了做到這種複雜的轉換,Hopper 在 1952 年創造了第一個編譯器
    • 編譯器專門把高級語言轉換成低級語言,比如「彙編」或「機器碼」
  • A-0 的代碼沒有遺留下來

7. 變量

  • 代表內存地址的抽象

8. FORTRAN

  • 名字來自「公式翻譯」
  • 由 IBM 在 1957 年發佈,主宰了早期計算機編程
  • FORTRAN 寫的程序比等同的手寫彙編代碼短 20 倍,然後 FORTRAN 編譯器會把代碼轉成機器碼
  • 因爲能讓程序員寫程序更快,所以成了一個更經濟的選擇。運行速度滿一點點,編程速度大大加快
  • 最初 FORTRAN 代碼只能跑在 IBM 計算機上

9. 數據系統語言委員會和 COBOL

  • 1950 年代,大多數編程語言和編譯器只能運行在一種計算機上,如果升級電腦,可能要重寫所有代碼,
  • 1959 年,工業界、學術界、政府的計算機專家組件了一個聯盟,「數據系統語言委員會」,Grace Hopper 擔任顧問,開發一種通用編程語言,可以在不同機器上通用
  • 最後誕生了一門高級,易於使用,「普通面向商業語言」,簡稱 COBOL

10. 1959 年,計算機黃金時代開始

  • 1960 年代的語言
    • ALGOL
    • LISP
    • BASIC
  • 1970 年代
    • Pascal
    • C
    • Smalltalk
  • 1980 年代
    • C++
    • Objective-C
    • Perl
  • 1990 年代
    • Python
    • Ruby
    • Java
  • 新千年
    • Swift
    • C#
    • Go
  • 有些語言現在還存在
    • 瀏覽器可能是 C++ 或者 Objective-C
  • 新的語言在不斷誕生
    • 使用更聰明的抽象,讓某些方面更容易或更強大
    • 或利用新技術和新平臺帶來的優勢,讓更多人能快速做出美妙的事情

11. 聖盃

  • 很多人認爲,計算機的聖盃是直接使用英文,直接對計算機說話,然後它會理解並執行
  • 這種智能系統目前只存在於科幻小說
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章