浅谈从源代码文件到二进制可执行文件的过程
来源:互联网 发布:datax导入数据到hive 编辑:程序博客网 时间:2024/05/18 22:56
=== .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虚拟机的硬件平台和操作系统上的二进制文件。
- 浅谈从源代码文件到二进制可执行文件的过程
- 浅谈从源代码文件到二进制可执行文件的过程
- 浅谈从源代码文件到二进制可执行文件的过程
- 源代码文件到二进制可执行文件的过程
- 从源代码到可执行文件的过程
- c语言从一个源代码文件到生成可执行文件的过程
- 从C源代码到可执行文件的总体过程框架
- 从C源代码到可执行文件的总体过程框架
- 从源代码到可执行文件
- 从源代码到可执行文件
- 源代码到可执行文件过程
- c源代码到可执行文件的过程
- c源代码到可执行文件的过程
- C/C++程序从cpp文件到最终生成可执行文件的过程分析
- 从java源代码到jar文件到exe可执行文件到setup安装文件
- 从JAVA源代码到EXE可执行文件
- 从JAVA源代码到EXE可执行文件
- .c文件到可执行文件过程
- def get_my_secret2 self.my_secret # => 显式
- Android深入浅出之Audio 第一部分 AudioTrack分析
- jQuery Ajax 实例演示
- 5309 Product
- jquery mobile 页面间的传递参数
- 浅谈从源代码文件到二进制可执行文件的过程
- 8086指令用法
- Android深入浅出之Audio第三部分Audio Policy[1]
- MySQL问题解决:-bash: mysql: command not found
- Android开发:实现带图片和checkbox的listview
- 5310 OverFlow
- 《C语言参悟之旅》 -读书笔记(一)
- 本来:权限修饰符只对实例方法生效(下面解释),但是这里类方法也受限制
- Hibernate中对象的三种状态