本文概述
编程语言定义了一组指令,这些指令被编译在一起以执行CPU(中央处理单元)的特定任务。编程语言主要是指高级语言,例如C,C,Pascal,Ada,COBOL等。
每种编程语言都包含一组独特的关键字和语法,用于创建一组指令。到目前为止,已经开发了成千上万种编程语言,但是每种语言都有其特定的用途。这些语言从硬件提供的抽象级别有所不同。一些编程语言提供的抽象较少或没有,而另一些提供更高的抽象。根据抽象级别,可以将它们分为两类:
- 低级语言
- 高级语言
下面给出的图像描述了硬件的抽象级别。从下图中可以看出,机器语言不提供抽象,汇编语言提供的抽象较少,而高级语言提供的抽象较高。
低级语言
低级语言是一种编程语言,不提供对硬件的任何抽象,它以0或1形式表示,它们是机器指令。此类别下的语言是机器级别的语言和汇编语言。
机器语言
机器级语言是由一组以二进制形式0或1组成的指令组成的语言。众所周知,计算机只能理解二进制数(即0和1)的机器指令。给计算机的指令只能是二进制代码。用机器级语言创建程序是一项非常艰巨的任务,因为程序员用机器指令编写程序并不容易。由于不易理解,而且容易维护,因此容易出错。机器级语言不能移植,因为每台计算机都有其机器指令,因此,如果我们在一台计算机上编写程序,则在另一台计算机上将不再有效。
不同的处理器体系结构使用不同的机器代码,例如,PowerPC处理器包含RISC体系结构,与具有CISC体系结构的intel x86处理器相比,它需要不同的代码。
汇编语言
汇编语言包含一些人类可读的命令,例如mov,add,sub等。通过使用扩展形式的称为汇编语言的机器级语言,在某种程度上减少了我们在机器级语言中面临的问题。由于汇编语言指令以英文单词mov,add,sub等形式编写,因此更容易编写和理解。
我们知道计算机只能理解机器级别的指令,因此我们需要一个将汇编代码转换为机器代码的转换器。用于翻译代码的翻译器称为汇编器。
汇编语言代码不可移植,因为数据存储在计算机寄存器中,并且计算机必须知道不同的寄存器集。
汇编代码并不比机器代码快,因为汇编语言在层次结构中位于机器语言之上,因此这意味着汇编语言具有相对于硬件的某种抽象,而机器语言具有零抽象。
机器级语言和汇编语言之间的差异
以下是机器级语言和汇编语言之间的区别:
机器语言 | 汇编语言 |
---|---|
The machine-level language comes at the lowest level in the hierarchy, so it has zero abstraction level from the hardware. | 汇编语言高于机器语言, 这意味着它与硬件的抽象度较低。 |
It cannot be easily understood by humans. | 它易于读取, 编写和维护。 |
The machine-level language is written in binary digits, i.e., 0 and 1. | 汇编语言是用简单的英语编写的, 因此用户很容易理解。 |
It does not require any translator as the machine code is directly executed by the computer. | 在汇编语言中, 汇编器用于将汇编代码转换为机器代码。 |
It is a first-generation programming language. | 它是第二代编程语言。 |
高级语言
高级语言是一种编程语言,允许程序员编写独立于特定计算机类型的程序。高级语言被认为是高级语言,因为它们比机器语言更接近人类语言。
用高级语言编写程序时,需要全神贯注于问题的逻辑。
需要编译器才能将高级语言翻译成低级语言。
高级语言的优势
- 高级语言易于阅读,编写和维护,因为它以英语(如单词)书写。
- 设计高级语言是为了克服低级语言的局限性,即可移植性。高级语言是可移植的;即,这些语言与机器无关。
低级语言和高级语言之间的差异
以下是低级语言和高级语言之间的区别:
低级语言 | 高级语言 |
---|---|
It is a machine-friendly language, i.e., the computer understands the machine language, which is represented in 0 or 1. | 这是一种用户友好的语言, 因为该语言以简单的英语单词书写, 因此人们很容易理解。 |
The low-level language takes more time to execute. | 它以更快的速度执行。 |
It requires the assembler to convert the assembly code into machine code. | 它要求编译器将高级语言指令转换为机器代码。 |
The machine code cannot run on all machines, so it is not a portable language. | 高级代码可以在所有平台上运行, 因此它是一种可移植的语言。 |
It is memory efficient. | 它的内存效率较低。 |
Debugging and maintenance are not easier in a low-level language. | 使用高级语言可以使调试和维护更加容易。 |
评论前必须登录!
注册