C语言教程-什么是编程语言?
编程语言定义了一组指令,这些指令由中央处理单元(CPU)一起编译,以执行特定的任务。编程语言主要指高级语言,如C、C++、Pascal、Ada、COBOL等。
每种编程语言都包含一组独特的关键字和语法,用于创建一组指令。至今已经开发了成千上万种编程语言,但每种语言都有其特定的用途。这些语言在它们提供的抽象级别上有所不同。有些编程语言提供较少或没有抽象,而有些提供较高的抽象。基于抽象级别,它们可以分为两类:
- 低级语言
- 高级语言
下面的图片描述了从硬件的抽象级别。从下图可以看出,机器语言提供没有抽象,汇编语言提供较少的抽象,而高级语言提供较高的抽象。
低级语言
低级语言是一种编程语言,它不提供与硬件的抽象,而是以0或1的形式表示,这些是机器指令。属于此类别的语言是机器级语言和汇编语言。
机器级语言
机器级语言是由一组以二进制形式表示的指令组成的语言。由于计算机只能理解机器指令,这些指令必须是二进制代码,即0和1。在机器级语言中编写程序是一项非常困难的任务,因为程序员不容易以机器指令编写程序。由于难以理解,维护也非常高。机器级语言不可移植,因为每台计算机都有其机器指令,所以在一台计算机上编写的程序在另一台计算机上将不再有效。
不同的处理器体系结构使用不同的机器代码,例如,PowerPC处理器包含RISC体系结构,需要与Intel x86处理器不同的代码。
汇编语言
汇编语言包含一些可读性较好的命令,如mov、add、sub等。汇编语言在一定程度上减少了在机器级语言中遇到的问题。由于汇编语言指令采用类似于mov、add、sub的英语单词编写,因此更易于编写和理解。
由于计算机只能理解机器级指令,因此需要将汇编代码转换为机器代码的转换器。用于转换代码的转换器称为汇编器。
汇编语言代码不可移植,因为数据存储在计算机寄存器中,计算机必须知道不同的寄存器集。
汇编代码不比机器代码更快,因为汇编语言位于层次结构中的机器语言之上,这意味着汇编语言与硬件的抽象程度较高,而机器语言则具有零抽象。
机器级语言与汇编语言的区别
机器级语言与汇编语言之间的区别如下:
机器级语言 | 汇编语言 |
---|---|
机器级语言处于层次结构的最低级别,因此其与硬件的抽象级别为零。 | 汇编语言位于机器语言之上,这意味着它与硬件的抽象程度较低。 |
它不能轻易被人理解。 | 容易阅读、编写和维护。 |
机器级语言以二进制位表示,即0和1。 | 汇编语言以简单的英语单词编写,因此用户可以轻松理解。 |
不需要任何转换器,因为计算机直接理解机器代码。 | 汇编语言需要汇编器将汇编代码转换为机器代码。 |
它是第一代编程语言。 | 它是第二代编程语言。 |
高级语言
高级语言是一种编程语言,允许程序员编写独立于特定计算机类型的程序。高级语言被称为高级语言,因为它们与机器级语言相比更接近人类语言。
在高级语言中编写程序时,重点需要放在问题的逻辑上。
将高级语言转换为低级语言需要编译器。
高级语言的优势
- 高级语言易于阅读、编写和维护,因为它是用简单的英语单词编写的。
- 高级语言的设计旨在克服低级语言的局限性,即可移植性。高级语言是可移植的,即这些语言与机器无关。
低级语言与高级语言之间的区别
低级语言与高级语言之间的区别如下:
低级语言 | 高级语言 |
---|---|
它是一种机器友好型语言,即计算机理解机器语言,它用0或1表示。 | 它是一种用户友好型语言,因为它是用简单的英语单词编写的,易于人类理解。 |
低级语言执行速度较慢。 | 它以较快的速度执行。 |
它需要汇编器将汇编代码转换为机器代码。 | 它需要编译器将高级语言指令转换为机器代码。 |
机器代码不能在所有机器上运行,因此不是可移植语言。 | 高级代码可以在所有平台上运行,因此是可移植语言。 |
它是内存效率高的。 | 它的内存效率较低。 |
低级语言中的调试和维护并不容易。 | 在高级语言中,调试和维护更容易。 |