第二代程式語言

第二代程式語言(2GL)是在編程語言世代的分類中對匯編語言的稱呼。 [1][2][3] 這個稱呼是為了將匯編語言與其他跨平台第三代編程語言(如 COBOL 等高級語言)或更早期出現的第一代編程語言機器語言)區分開來或進行對比。 [2][4]

定義

第二代編程語言的定義如下:

  • 程序中的每一行直接對應到一條處理器指令,也就是說,它基本相當於更易於記憶的機器語言
  • 程序員能夠直接寫出或讀懂代碼。要使代碼運行在機器上,需要通過匯編過程將它轉換為機器可理解的形式。[4]
  • 每種語言寫出的程序只能運行在特定的一類處理器架構上。[2]

應用

第二代編程語言有時會被用來編寫內核驅動程序,有時候也用來編寫遊戲等計算密集的軟件。[1]

在現代編程中,第二代編程語言很少有應用。 [5] 這些語言可能有一些優勢,例如它們的執行速度更快;但是,它們也有缺點。在編寫第二代編程語言的程序時,程序員需要:

  • 以處理器指令為單位來思考,而非更高階的邏輯;[2][3]
  • 在內存管理時關注大量的細節,同時考慮其他硬件因素;[2]
  • 對於不同的架構編寫不同版本的程序。[3]

當今,大多數程序都是用第三代編程語言第四代編程語言編寫的。匯編語言在運行速度方面的優勢也不再明顯;與匯編相比,編寫完善的C語言程序通常能運行得一樣快甚至更快。 [2][6]

歷史

第二代編程語言占據了計算機發展史中的重要地位。有很長一段時間,給許多機器(如紅白機康懋達64)編程的唯一選擇就是第二代編程語言。[7][8] 第二代編程語言在從「程序員向機器妥協」到「機器向程序員妥協」的道路上邁出了第一步,編程語言世代的發展遵循了這條道路。[2][3]

參考

  1. ^ 1.0 1.1 "Computer Hope, Generation languages". [2020-01-29]. (原始內容存檔於2017-07-04). 
  2. ^ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 Brookshear, J. Glenn. Computer science : an overview 11th. Addison-Wesley. 2012: 240–241. ISBN 0-13-256903-5. 
  3. ^ 3.0 3.1 3.2 3.3 Vass, Péter. Programming Language generations and Programming Paradigms (PDF). (原始內容 (PDF)存檔於2020-01-29). 
  4. ^ 4.0 4.1 What Are Programming Language Generations?. wiseGEEK. [2019-06-11]. (原始內容存檔於2020-08-11) (美國英語). 
  5. ^ Top Computer Languages 2019 - StatisticsTimes.com. statisticstimes.com. [2019-06-11]. (原始內容存檔於2019-06-12). 
  6. ^ Walls, Colin. Why C is faster than assembly. Mentor, a Sieman's Business. Mentor Inc. [11 June 2019]. (原始內容存檔於2020-01-29). 
  7. ^ Commodore corporation. C64 programmer's reference (PDF). Commodore corporation. [11 June 2019]. (原始內容 (PDF)存檔於2021-02-26). 
  8. ^ Wikibooks contributors. NES assembly. Wikibooks: NES Assembly. [11 June 2019].