赞美男人健美的文章:高级语言为什么不直接编译成机器码,而编译成汇编代码

来源:百度文库 编辑:偶看新闻 时间:2024/05/01 21:46:53

高级语言为什么不直接编译成机器码,而编译成汇编代码

(2010-10-04 12:08:19) 转载标签:

杂谈

1.一般的编译器,是先将高级语言转换成汇编语言(中间代码),然后在汇编的基础上优化生成OBJ目标代码,最后Link成可执行文件。 2.Que:高级语言为什么不直接编译成机器码,而编译成汇编代码?  ACK:1)其中有一个好处是方便优化,因为,编译器也是工具,也是机器,毕竟是机器生成的程序,不可以非常     完美的,而汇编是机器指令的助记符,一个汇编指令就对应一条机器指令(特殊指令除外)调试起来肯定会比     机器指令方便的方便,这样优化起来也方便。       2)高级语言只需要编译成汇编代码就可以了,汇编代码到机器码的转换是由硬件实现即可,有必要用软件实     现这样分层可以有效地减弱编译器编写的复杂性,提高了效率.就像网络通讯的实现需要分成很多层一样,主要     目的就是为了从人脑可分析的粒度来减弱复杂性.       3)如果把高级语言的源代码直接编译成机器码的话,那要做高级语言到机器码之间的映射,如果这样做的     话,每个写编译器的都必须熟练机器码。这个不是在做重复劳动么。