第二代程式語言

第二代程式語言（2GL）是在编程语言世代的分类中对汇编语言的称呼。

这个称呼是为了将汇编语言与其他跨平台的第三代编程语言（如 COBOL 等高级语言）或更早期出现的第一代编程语言（机器语言）区分开来或进行对比。

定义 
第二代编程语言的定义如下：

 程序中的每一行直接对应到一条处理器指令，也就是说，它基本相当于更易于记忆的机器语言。
 程序员能够直接写出或读懂代码。要使代码运行在机器上，需要通过汇编过程将它转换为机器可理解的形式。
 每种语言写出的程序只能运行在特定的一类处理器架构上。

应用 
第二代编程语言有时会被用来编写内核或驱动程序，有时候也用来编写游戏等计算密集的软件。

在现代编程中，第二代编程语言很少有应用。

这些语言可能有一些优势，例如它们的执行速度更快；但是，它们也有缺点。在编写第二代编程语言的程序时，程序员需要：

 以处理器指令为单位来思考，而非更高阶的逻辑；
 在内存管理时关注大量的细节，同时考虑其他硬件因素；
 对于不同的架构编写不同版本的程序。

当今，大多数程序都是用第三代编程语言或第四代编程语言编写的。汇编语言在运行速度方面的优势也不再明显；与汇编相比，编写完善的C语言程序通常能运行得一样快甚至更快。

历史 
第二代编程语言占据了计算机发展史中的重要地位。有很长一段时间，给许多机器（如红白机或康懋达64）编程的唯一选择就是第二代编程语言。
第二代编程语言在从“程序员向机器妥协”到“机器向程序员妥协”的道路上迈出了第一步，编程语言世代的发展遵循了这条道路。

参考 

程序设计语言