编译器编译原理--详解
2017-01-14 00:00
239 查看
摘要: 了解编译器编译的详细过程
目前编译器做的工作越来越多,IDE为我们程序员提供的服务也越来越周到。我们只需讲业务逻辑通过代码语言表现出来,但是我们编译器内部具体的编译原理也越来越不了解了。沙米最近看了看《程序员的自我修养》,发现里面讲解的编译原理很清晰,明了,使自己对编译的基本知识有了一定了解。
有好东西当然要分享出来了,哈哈。下面是沙米的一些理解,可能有一下错误,还请大家批评指针,谢谢。
![](https://static.oschina.net/uploads/space/2017/0114/172224_xnfG_1783725.png)
![](https://static.oschina.net/uploads/space/2017/0114/173414_8zAR_1783725.png)
![](https://static.oschina.net/uploads/space/2017/0114/172453_Jbob_1783725.png)
![](https://static.oschina.net/uploads/space/2017/0114/172638_W6tv_1783725.png)
![](https://static.oschina.net/uploads/space/2017/0114/173337_hgd3_1783725.png)
2.5链接图示
![](https://static.oschina.net/uploads/space/2017/0114/172735_L4xa_1783725.png)
![](https://static.oschina.net/uploads/space/2017/0114/172840_uFtN_1783725.png)
![](https://static.oschina.net/uploads/space/2017/0114/172905_Kf2O_1783725.png)
![](https://static.oschina.net/uploads/space/2017/0114/173754_EFTV_1783725.png)
![](https://static.oschina.net/uploads/space/2017/0114/173152_KUe5_1783725.png)
![](https://static.oschina.net/uploads/space/2017/0114/173219_zPT9_1783725.png)
![](https://static.oschina.net/uploads/space/2017/0114/172953_73nU_1783725.png)
目前编译器做的工作越来越多,IDE为我们程序员提供的服务也越来越周到。我们只需讲业务逻辑通过代码语言表现出来,但是我们编译器内部具体的编译原理也越来越不了解了。沙米最近看了看《程序员的自我修养》,发现里面讲解的编译原理很清晰,明了,使自己对编译的基本知识有了一定了解。
有好东西当然要分享出来了,哈哈。下面是沙米的一些理解,可能有一下错误,还请大家批评指针,谢谢。
0 、本文介绍的目录
![](https://static.oschina.net/uploads/space/2017/0114/172224_xnfG_1783725.png)
1、过程概览
1.1过程图
![](https://static.oschina.net/uploads/space/2017/0114/173414_8zAR_1783725.png)
2、过程详解
2.1预编译
![](https://static.oschina.net/uploads/space/2017/0114/172453_Jbob_1783725.png)
2.2编译
2.3汇编
![](https://static.oschina.net/uploads/space/2017/0114/172638_W6tv_1783725.png)
2.4链接
![](https://static.oschina.net/uploads/space/2017/0114/173337_hgd3_1783725.png)
2.5链接图示
![](https://static.oschina.net/uploads/space/2017/0114/172735_L4xa_1783725.png)
3、目标文件详解
![](https://static.oschina.net/uploads/space/2017/0114/172840_uFtN_1783725.png)
3.1ELF文件结构详解
![](https://static.oschina.net/uploads/space/2017/0114/172905_Kf2O_1783725.png)
3.2图示
3.2.1文件结构图示
![](https://static.oschina.net/uploads/space/2017/0114/173754_EFTV_1783725.png)
3.2.2字符串表结构图示
![](https://static.oschina.net/uploads/space/2017/0114/173152_KUe5_1783725.png)
3.2.3符号表结构图示
![](https://static.oschina.net/uploads/space/2017/0114/173219_zPT9_1783725.png)
3.2.4自定义段图示
![](https://static.oschina.net/uploads/space/2017/0114/172953_73nU_1783725.png)
相关文章推荐
- 编译器编译原理详解
- 编译器编译原理详解
- 编译器编译原理详解
- 详解编译器编译原理
- gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解
- gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解
- gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解
- gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解
- gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解
- 编译原理课设——《TINY编译器》,用lex生成词法扫描实现编译器
- 编译原理 编译器的实现(C语言实现)
- 编译器编译原理详细解析
- 编译原理的大作业——关于TINY+的编译器
- 一个编译器的实现3——用编译原理自动化制作文本解析器
- 【编译原理】TINY编译器学习(一)
- 编译原理课设——《TINY编译器》,用yacc生成语法扫描实现编译器
- 深入浅出编译原理-6-一个完整的编译器前端的代码实现
- 【编译原理】编译器的编译基本过程
- PL/0语言编译器扩展 编译原理课程实践(1)
- 【编译原理】编译器是如何工作的?