学计算机编程是不是学越高级语言的越好?

来源:百度知道 编辑:UC知道 时间:2024/06/29 21:08:18

早期计算机程序都是用0和1的序列表示的,程序员直接使用的是机器指令,无需翻译,从纸带打孔输入即可执行得到结果。后来为了方便记忆,就将用0、1序列表示的机器指令都用符号助记,这些与机器指令一一对应的助记符就成了汇编指令,从而诞生了汇编语言。无论是机器指令还是汇编指令都是“面向机器”的,统称为低级语言。因为是针对特定机器的机器指令的助记符,所以汇编语言是无法独立于机器(特定的CPU体系结构)的。但汇编语言也是要经过翻译成机器指令才能执行的,所以也有将运行在一种机器上的汇编语言翻译成运行在另一种机器上的机器指令的方法,那就是交叉汇编技术。
高级语言是从人类的逻辑思维角度出发,是“面向人”的计算机语言,抽象程度大大提高,需要经过编译成特定机器上的目标代码才能执行,一条高级语言的语句往往需要若干条机器指令来完成。高级语言独立于机器的特性是靠编译器为不同机器生成不同的目标代码(或机器指令)来实现的。那具体的说,要将高级语言编译到什么程度呢,这又跟编译的技术有关了,既可以编译成直接可执行的目标代码,也可以编译成一种中间表示,然后拿到不同的机器和系统上去执行,这种情况通常又需要支撑环境,比如解释器或虚拟机的支持,Java程序编译成bytecode,再由不同平台上的虚拟机执行就是很好的例子。所以,说高级语言不依赖于机器,是指在不同的机器或平台上高级语言的程序本身不变,而通过编译器编译得到的目标代码去适应不同的机器。从这个意义上来说,通过交叉汇编,一些汇编程序也可以获得不同机器之间的可移植性,但这种途径获得的移植性远远不如高级语言来的方便和实用性大。
高级语言往往对环境有要求,也就是说常常要依赖计算机系统平台环境,但是一般来说高级语言主要面对某些特定的领域开发而建立的体系,在擅长的领域,开发人员不必关心底层与计算机交互操作,或者与业务逻辑无关的繁琐操作,可以专心业务逻辑的实现。
所谓的低级语言,需要开发人员处理的事务更多,更细,可能包括底层的一系列操作,甚至涉及到硬件层次,虽然看上去它很麻烦,实际上对开发人员要求更高了,但是也正是因为低级语言能够与底层交互,因此也更“强大”。机器指令是最底层的“计算机语言”了,说到底计算机只认识0和1,如果程序员直接使用的是机器指令,那么完全可以跨越操作系统的束缚去使用计算机,甚至可以控制它的一切,无