目录

低级语言和高级语言的区别有哪些

低级语言和高级语言的区别是高级语言实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好;低级语言实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差。

一、低级语言和高级语言的区别

低级语言和高级语言的区别是高级语言实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好;低级语言实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差。

越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,使编写程序的过程更符合人类的思维习惯,并且极大了简化了人力劳动。也就是说你用高级语言写一句,会被转换成许多底层操作,大部分的工作交给了负责转换的机器(即编译器),从而人力得到了解放。因为机器就是用来为人类提供便利的,所以说高级语言的出现是计算机发展的必然结果。

低级语言因其是接近底层的编程,没有编译解析等过程,所以执行效率高,响应速度快;但由于学习和编程以及调试难度较高,故编程比较费时费力,项目周期一般较长。反观高级语言虽比较依赖编译解析,但其可读性更高,开发效率更高,学习起来相对容易;当然高级语言也有不如低级语言的地方,譬如:执行效率。此外,高级语言的执行依赖于运行环境,如果环境配置不完善或者环境版本不一致,则可能导致程序无法执行。

延伸阅读:

二、低级语言的执行效率更高的原因

1.低级语言可以通过控制硬件访问来优化效率

越低级的语言月接近底层,即控制硬件访问的能力越强,对硬件资源的利用效率越高。比如说汇编语言能够访问寄存器,而C语言就做不到。通过对寄存器等硬件的访问,我们可以将程序的运行效率优化到最大,而像C这样的高级语言用的非常多的是堆栈这样的内存结构,访问速度自然不如寄存器了。

2.高级语言程序存在工作冗余,有效率损失

各种语言需要通过编译器翻译成机器码,不管编译多么智能和强大,都是会产生冗余。这里的冗余不是指指令的多少,而是有没有做没有必要的事情。 产生冗余的多少关键要看语言跟机器指令之间的耦合度。耦合度越大,编译器翻译过程越简单,产生的冗余越少。对应汇编来书,由于与机器码一一对应,所以翻译后基本没有冗余。而高级语言由于进行了抽象和封装,所以与机器指令间的耦合度较低,因此整个翻译过程较复杂,因此在高级语言在具体化的过程中不可避免会产生较多的冗余。据说C语言有10%的效率损失。

3.效率高不高,还取决于程序员水平

一个差的程序员用汇编写程序,可能存在很多没有用的操作,而程序高手用c语言写,可以将程序优化到最大。最终的结果可能是汇编的程序跑不过C语言程序。

总之,完成一项工作的工作量是不变的,机器做的 多了,人就做的就少了,同时人对程序的很多细节的控制性也减弱了。各种语言都是在这个平衡点附近纠结。从C/C++的注重机器运算效率的优化,到C#/Java注重开发效率的优化。人操作起来更加方便了,更高效了,代价就是,机器要处理的东西更多,运算效率被进一步压缩。但是这个压缩在许可范围内,那么这也是一种进步。

以上就是关于低级语言和高级语言的区别的内容希望对大家有帮助。

一站式研发项目管理平台 PingCode

一站式研发项目管理平台 PingCode

支持敏捷\瀑布、知识库、迭代计划&跟踪、需求、缺陷、测试管理,同时满足非研发团队的流程规划、项目管理和在线办公需要。