当前位置: C语言 -- 专题 -- 计算机语言的分级

计算机语言的分级

计算机语言(computer language)是用于编写计算机程序的一组规则、字符等。


一、计算机语言的发展

早期的计算机语言是机器语言(machine language);每台计算机都有自己的机器语言;如果硬件不同,不同计算机的机器语言不同。机器语言由数字01组成,计算机能够直接执行机器语言编写的程序;但机器语言不便于人阅读和维护。

为克服机器语言的缺点,人们使用符号或者助记符来代替二进制指令,这些语言称为汇编语言(assembly language)。汇编语言改善了代码阅读,提高了编程效率;但汇编语言未能解决代码在不同计算机间的可移植问题,程序员还需在硬件上花费大量时间。

为使程序能够在不同的计算机间可移植,同时也让程序员将更多精力集中到要解决的问题,而不是计算机硬件,高级语言(high-level language)得到了蓬勃发展,其中最具代表性的高级语言有CC++Java等。


二、计算机语言的分级

机器语言是计算机唯一能够理解的语言,要执行其它语言编写的程序,程序需要先翻译成机器语言。有两种方法可用于实现这种翻译:

1、解释(interpretation):程序运行时,每个指令都可以使用机器语言编写的程序解码并执行。

2、编译(translation):将整个源程序编译成机器语言的目标程序。

汇编语言程序通过汇编器翻译成机器语言程序;高级语言程序通过解释或者编译的方式翻译成机器语言程序。


机器语言、汇编语言、高级语言的抽象层次(abstraction level)关系如下表所示:

抽象层次 计算机语言


高级语言
汇编语言
机器语言

从上到下抽象层次逐渐降低。


根据抽象层次的不同,计算机语言可分为两大类:

1、低级语言(low-level language),包括机器语言和汇编语言。

2、高级语言(high-level language)


三、低级语言和高级语言的比较
低级语言 高级语言
抽象程度

低级语言很少或者根本不提供计算机指令集架构的抽象。

相对于低级语言,高级语言会提供更高程度的抽象。

可理解性

低级语言对机器友好,但人阅读、理解很困难;因此低级语言代码维护很困难。

高级语言对人友好,代码便于阅读、理解;因此高级语言代码便于维护。

硬件依赖性

低级语言依赖于机器,编程者应具备一定的硬件知识。

高级语言不依赖机器,对编程者的硬件知识要求不高。

可移植性

低级语言程序不能在不同设备间移植。

高级语言程序可以在不同设备间移植。

执行效率

低级语言程序执行速度快,内存使用效率高。

高级语言程序执行速度慢,内存使用效率低。



主要参考资料:

1、剑桥词典

2、《计算机科学导论》第4版 作者:Behrouz A.Forouzan 出版社:机械工业出版社

3、《汇编语言:基于x86处理器》第8版 作者:Kip R.Irvine 出版社:机械工业出版社

4、compscicentral.com/programming-language-levels/

5、freecodecamp.org/news/what-is-abstraction-in-programming/

6、workforce.libretexts.org : structure of low-level programs

7、byjus.com/gate/difference-between-high-level-and-low-level-languages/

8、bootcampadvisor.com/coding-career/low-level-programming/