高级语言为什么不直接编译成机器码,而编译成汇编代码?
来源:互联网 发布:mac app store更新不了 编辑:程序博客网 时间:2024/06/06 01:32
1.一般的编译器,是先将高级语言转换成汇编语言(中间代码),然后在汇编的基础上优化生成OBJ目标代码,最后Link成可执行文件。 ACK:1)其中有一个好处是方便优化和调试,因为编译器也是工具,也是机器,毕竟是机器生成的程序,不可以非常完美的,而汇编是机器指令的助记 符,一个汇编指令就对应一条机器指令(特殊指令除外)调试起来肯定会比机器指令方便的方便,这样优化起来也方便。 2)高级语言只需要编译成汇编代码就可以了,汇编代码到机器码的转换是由硬件实现即可,有必要用软件实现这样分层可以有效地减弱编译器 编写的复杂性,提高了效率.就像网络通讯的实现需要分成很多层一样,主要目的就是为了从人脑可分析的粒度来减弱复杂性. 3)如果把高级语言的源代码直接编译成机器码的话,那要做高级语言到机器码之间的映射,如果这样做的 话,每个写编译器的都必须熟练机 器码。这个不是在做重复劳动么?
2.Que:高级语言为什么不直接编译成机器码,而编译成汇编代码?
1 0
- 高级语言为什么不直接编译成机器码,而编译成汇编代码?
- 为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是直接编译成机器码?
- Python代码编译成二进制文件
- 虚幻4 蓝图被编译成的蓝图汇编代码
- gcc将内嵌汇编编译成汇编
- pb11.2编译成机器码时报错:linker:errors
- Kotlin/Native v0.3 发布,将 Kotlin 编译成机器码
- 将c代码编译成dll文件
- Ruby编译成可执行文件
- asp编译成dll
- css编译成swf
- Ant编译成War
- jsp编译成servlet
- python编译成pyc
- [Objective-C] @property是不能被“预处理”的,而是直接编译成汇编指令
- VS2015环境下查看C语言编译成的汇编语句的方法
- asp代码编译成dll有什么用?服务器上又不给注册?
- 用BCB编译VTK为什么必须编译成DLL
- 修改idea运行内存大小
- NS2 学习资料网站链接
- linux mv命令的用法
- tensorflow安装与测试
- linux内核中断
- 高级语言为什么不直接编译成机器码,而编译成汇编代码?
- 根据url获取图片的高度和宽度
- 数列特征
- jquery的ajax语法
- 2016/11/17 1001. 图的广度优先搜索
- oracle同义词
- 手残错误总结
- [BZOJ]1001: [BeiJing2006]狼抓兔子
- SQL中where 1=1 和 where1<>1