源代码文件到二进制可执行文件的过程
来源:互联网 发布:做菜软件 编辑:程序博客网 时间:2024/05/19 01:14
=== .c ===
预处理 -》.c (源文件)
编译 -》.s/asm (汇编程序)
汇编 -》.o/obj目标程序(二进制文件)
链接 -》.exe可执行程序 (二进制文件)
(1) 为什么要生成汇编,而不是直接从源文件编译成机器指令(二进制代码)?
首先,汇编语言作为机器指令的助记符,调试以及优化起来都会比较方便;
其次,汇编到机器指令的过程是由硬件完成的,是一个自动过程,让硬件来完成效率较高;
最后,如果要将源文件直接转换成机器指令,那么编译器编写者就必须要非常数量机器码,这是一个比较困难且低效的过程。
(2) 详细解释从源文件经过编译成为汇编语言的过程?
词法分析(Token),语法分析(syntax tree),语义分析,优化, 代码生成。
=== .java ===
java编译器将源文件编译成.class文件(平台无关)
JVM的Class Loader负责将class文件加载到JVM中
利用Windows/Linux下的字节码解释程序,将class文件解释成机器指令(机器指令是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由操作码和操作数两部分组成)。没有转换成汇编语言的过程
(1) 为什么引入class文件?
class文件径打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被链接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Java class文件是可以运行在任何支持java虚拟机的硬件平台和操作系统上的二进制文
http://blog.csdn.net/linuxheik/article/details/8607603
- 源代码文件到二进制可执行文件的过程
- 浅谈从源代码文件到二进制可执行文件的过程
- 浅谈从源代码文件到二进制可执行文件的过程
- 浅谈从源代码文件到二进制可执行文件的过程
- 源代码到可执行文件过程
- c源代码到可执行文件的过程
- 从源代码到可执行文件的过程
- c源代码到可执行文件的过程
- c语言从一个源代码文件到生成可执行文件的过程
- 从C源代码到可执行文件的总体过程框架
- 从C源代码到可执行文件的总体过程框架
- .c文件到可执行文件过程
- (转).c文件到可执行文件的整个编译过程
- 源文件到可执行文件的过程
- 源文件到可执行文件的过程
- 源文件到可执行文件的过程
- 源码到可执行文件的过程
- .C文件到可执行文件编译过程
- android 中全局键的处理GlobalKeyManager
- Java:可变参数列表
- angular2中使用iframe,加载一个被写入的页面
- 添加线程(函数)
- javaWeb初体验
- 源代码文件到二进制可执行文件的过程
- CodeForces 869B The Eternal Immortality
- 欢迎使用CSDN-markdown编辑器
- 【python 数据处理】分组求和、合并
- 静态成员函数
- Java设计模式_(行为型)_责任链模式
- 自定义TextView,实现图片在文字之前的富文本效果
- mybatis中"#"和"$"的区别
- SpringBoot @Aspect注解详情