为什么汇编语言有机器依赖性,而高级语言没有机器依赖性,一处编写,处处运行?求本质详细解释。

如题所述

你可以理解为高级语言将它的source code编译成了对应目标机器的汇编语言

所谓“高级语言没有机器依赖性,一处编写,处处运行”,意思是:比如你用c写了一个程序,

在arm平台上要编译一次才能运行,在x86平台上编译一次才能运行追问

机器语言是因机器而有差异的吧,你说的又设计汇编器和编译器,他们功能有什么差异?

涉及

追答

是的,因为处理器不同,机器代码不同

汇编器是将汇编语言编译为机器码的编译器

编译器是将语言直接转化为目标语言的程序

比如:c语言编译器,pascal编译器

追问

可以这么理解吗,机器是鸟,汇编语言是书面鸟语,而高级语言是人话。汇编器和编译器都是传话的,汇编器只会鸟语,而编译器精通兽语,可以传话中将人话翻译成鸟语给鸟听。

还有,汇编器都是硬件。而编译器都是软件吗

追答

差不多是这个意思的。如果你感兴趣可以找编译原理的书籍看看

汇编器也是程序的

追问

那么所谓汇编语言,高级语言,没什么区别就是了,只是一个难懂,一个易懂而已?

追答

现实情况下还有一种情况就是编译器的目标不是具体的机器代码,执行的时候再由解释器解释运行,比如 java语言........

追问

这就是高级语言了,而汇编语言是面向具体机器的,我懂了

你辛苦了

如果你是学Java的,不妨加个好友

温馨提示:答案为网友推荐,仅供参考
相似回答