第二代编程语言

第二代编程语言(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].