什么是编程语言?

17 Mar 2025 | 4 分钟阅读

编程语言定义了一组可以一起编译以由 CPU(中央处理单元)执行特定任务的指令。编程语言主要指高级语言,如 C、C++、Pascal、Ada、COBOL 等。

每种编程语言都包含一组独特的关键字和语法,用于创建指令集。至今已开发出数千种编程语言,但每种语言都有其特定的用途。这些语言在它们提供的硬件抽象级别上有所不同。一些编程语言提供的抽象级别较低或没有抽象,而另一些则提供较高的抽象。根据抽象级别,它们可以分为两类:

  • 低级语言
  • 高级语言

下图描述了与硬件的抽象级别。从下图可以看出,机器语言提供零抽象,汇编语言提供较低抽象,而高级语言提供更高抽象。

Classification of Programming Language

低级语言

低级语言是一种编程语言,它不提供与硬件的抽象,并以 0 或 1 的形式表示,这些是机器指令。属于此类别的语言是机器语言和汇编语言。

机器语言

机器语言是由一组二进制形式 0 或 1 的指令组成的语言。我们知道计算机只能理解以二进制数字 0 和 1 表示的机器指令,所以给计算机的指令只能是二进制代码。用机器语言编写程序是一项非常困难的任务,因为程序员很难用机器指令编写程序。它容易出错,因为它不容易理解,而且维护成本也很高。机器语言不可移植,因为每台计算机都有自己的机器指令,所以如果我们在某台计算机上编写的程序在另一台计算机上将不再有效。

不同的处理器架构使用不同的机器码,例如,PowerPC 处理器包含 RISC 架构,它需要的代码不同于具有 CISC 架构的 Intel x86 处理器。

汇编语言

汇编语言包含一些人类可读的命令,如 mov、add、sub 等。通过使用机器语言的扩展形式——汇编语言,我们在机器语言中遇到的问题在一定程度上得到了缓解。由于汇编语言指令是用英文单词(如 mov、add、sub)编写的,因此它更容易编写和理解。

我们知道计算机只能理解机器语言指令,所以我们需要一个转换器将汇编代码转换为机器代码。用于转换代码的转换器称为汇编器。

汇编语言代码不可移植,因为数据存储在计算机寄存器中,而计算机需要知道不同的寄存器组。

汇编代码不像机器代码那样快,因为汇编语言在层次结构中位于机器语言之上,这意味着汇编语言比机器语言具有一定的硬件抽象,而机器语言的抽象为零。

机器语言和汇编语言之间的区别

以下是机器语言和汇编语言之间的区别:

机器语言汇编语言
机器语言处于层次结构的最低级别,因此它与硬件的抽象级别为零。汇编语言位于机器语言之上,这意味着它与硬件的抽象级别较低。
人类不容易理解。易于阅读、编写和维护。
机器语言以二进制数字,即 0 和 1 编写。汇编语言用简单的英语编写,因此用户容易理解。
它不需要任何翻译器,因为计算机直接执行机器代码。在汇编语言中,使用汇编器将汇编代码转换为机器代码。
它是第一代编程语言。它是第二代编程语言。

高级语言

高级语言是一种编程语言,它允许程序员编写独立于特定类型计算机的程序。高级语言之所以被称为高级,是因为它们比机器语言更接近人类语言。

当用高级语言编写程序时,需要将全部注意力集中在问题的逻辑上。

需要编译器将高级语言翻译成低级语言。

高级语言的优点

  • 高级语言易于阅读、编写和维护,因为它用类似英语的单词编写。
  • 高级语言的设计旨在克服低级语言的局限性,即可移植性。高级语言是可移植的;即,这些语言是机器无关的。

低级语言和高级语言之间的区别

以下是低级语言和高级语言之间的区别:

低级语言高级语言
它是机器友好的语言,即计算机可以理解机器语言,它以 0 或 1 表示。它是用户友好的语言,因为这种语言是用简单的英语单词编写的,人类可以轻松理解。
低级语言执行需要更多时间。它以更快的速度执行。
它需要汇编器将汇编代码转换为机器代码。它需要编译器将高级语言指令转换为机器代码。
机器代码不能在所有机器上运行,因此它不是一种可移植语言。高级代码可以在所有平台上运行,因此它是一种可移植语言。
它内存效率高。它内存效率较低。
在低级语言中,调试和维护并不容易。在高级语言中,调试和维护更容易。

下一主题C 教程