1 / 53
文档名称:

第十章 语言编译系统和运行系统.ppt

格式:ppt   页数:53
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第十章 语言编译系统和运行系统.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

第十章 语言编译系统和运行系统.ppt

文档介绍

文档介绍:第十章语言编译系统和运行系统
本章内容
C语言编译系统
预处理器、汇编器、连接器
目标文件的格式、静态库、动态连接
Java运行系统
掌握从源程序到可执行目标程序的实际处理过程
对实际参与软件开发是直接有用的
C语言编译系统
预处理器
源程序
修改后的源程序
可重定位的目标程序
可重定位的
目标文件

编译器
汇编器
汇编程序
连接器
可执行的目标程序
C源程序可以分成若干个模块
分别进行预处理、编译和汇编、形成可重定位的目标文件
目标文件和必要的库文件连接成一个可执行的目标文件
是编译驱动程序的名字
C语言编译系统

(1) #if 1
(2) int buf[2];
(3) #else
(4) int buf[2] = {10,20};
(5) #endif
(6) void swap();
(7) #define A buf[0]
(8) int main()
(9) {
(10)scanf("%d, %d", buf, buf+1);
(11)swap();
(12)printf("%d, %d",A, buf[1]);
(13)return 0;
(14) }

(1) extern int buf[2];
(2) int *bufp0 = buf;
(3) int *bufp1;
(4) void swap()
(5) {
(6) int temp;
(7)bufp1 = buf+1;
(8)temp = *bufp0;
(9)*bufp0 = *bufp1;
(10)*bufp1 = temp;
(11) }
C语言编译系统
预处理器
gcc首先调用预处理器cpp,将源程序文件翻译成一个ASCII中间文件,它是经修改后的源程序
cpp实现以下功能
文件包含
宏展开
条件编译
C语言编译系统

(1) #if 1
(2) int buf[2];
(3) #else
(4) int buf[2] = {10,20};
(5) #endif
(6) void swap();
(7) #define A buf[0]
(8) int main()
(9) {
(10)scanf("%d, %d", buf, buf+1);
(11)swap();
(12)printf("%d, %d",A, buf[1]);
(13)return 0;
(14) }

(1) # 1 “”
(2)
(3) int buf[2];
(4)
(5)
(6)
(7) void swap();
(8)
(9) int main()
(10) {
(11) scanf("%d, %d", buf, buf+1);
(12) swap();
(13) printf("%d,%d",buf[0], …);
(14) return 0;
(15) }
C语言编译系统
汇编器
1产生汇编代码
最简单的汇编器对输入进行两遍扫描
一遍扫描完成汇编代码到可重定位目标代码的翻译也是完全可能的
用 gcc S

用 as o

C语言编译系统
一段汇编代码
.L2:
cmpl $0,-4(%ebp)
jne .L6
jmp .L11
.L11:
cmpl $0,-8(%ebp)
jne .L6
jmp .L12
.L12:
jmp .L5
.p2align 4,,7
.L6:
C语言编译系统
连接器
目标模块或目标文件的形式
可重定位的目标文件
可执行的目标文件
共享目标文件
一种特殊的可重定位目标文件
在装入程序或运行程序时,动态地装入到内存并连接
C语言编译系统
连接是一个收集、组织程序所需的不同代码和数据的过程,以便程序能被装入内存并被执行
连接的时机
编译时
装入时
运行时
静态连接器
动态连接器
C语言编译系统
一个重定位模块M可能定义和引用的符号
全局符号指那些在模块M中定义,可以被其它模块引用的符号
局部符号指那些在模块M中定义,且只能在本模块中引用的符号
外部符号指那些由模块M引用并由其它模块定义符号
符号解析
识别各个目标模块中定义和引用的符号,为每一个符号引用确定它所关联的一个同名符号的定义
重定位

最近更新

2023年天津城市职业学院单招职业适应性考试题.. 39页

2023年天津电子信息职业技术学院单招职业技能.. 40页

2023年太原城市职业技术学院单招职业技能考试.. 38页

2023年宁夏体育职业学院单招职业技能测试题库.. 42页

2023年宁夏葡萄酒与防沙治沙职业技术学院单招.. 40页

2023年安康职业技术学院单招职业技能考试题库.. 41页

2023年安徽工业职业技术学院单招职业适应性考.. 40页

2026年傲慢与偏见暑假个人读后感 9页

2023年安徽矿业职业技术学院单招职业技能测试.. 40页

2023年安徽邮电职业技术学院单招职业适应性考.. 39页

2023年宜宾职业技术学院单招职业技能测试题库.. 41页

2026年做公司旅游方案怎么做 28页

2026年偃旗息鼓成语解析及谜语 4页

2023年江西工程学院单招职业技能考试题库及答.. 41页

2023年河北省秦皇岛市单招职业适应性考试题库.. 38页

2023年浙江师范大学行知学院单招职业技能考试.. 41页

2023年漯河食品职业学院单招职业技能考试题库.. 39页

2023年神木职业技术学院单招职业技能考试题库.. 39页

2023年衡阳科技职业学院单招职业技能考试题库.. 41页

翼内肌生物力学特性 35页

高端乳粉市场与区域竞争格局分析 35页

2023年陕西省榆林地区单招职业倾向性考试题库.. 40页

2026年保护动物作文 9页

2024年三亚城市职业学院单招职业技能考试模拟.. 40页

2024年三门峡社会管理职业学院单招职业倾向性.. 42页

2024年上海工程技术大学单招职业技能测试题库.. 40页

2024年上海理工大学单招职业倾向性考试题库汇.. 39页

2025年国家开放大学《建筑力学》章节测试参考.. 13页

2024年常州机电职业技术学院单招职业适应性测.. 78页

【人教版英语字帖】七年级下册单词表衡水体字.. 42页