中南大学软件学院PPT推荐.ppt
- 文档编号:13878766
- 上传时间:2022-10-14
- 格式:PPT
- 页数:48
- 大小:323.56KB
中南大学软件学院PPT推荐.ppt
《中南大学软件学院PPT推荐.ppt》由会员分享,可在线阅读,更多相关《中南大学软件学院PPT推荐.ppt(48页珍藏版)》请在冰豆网上搜索。
0|1代码相去甚远,1.1基本概念,11,2022/10/14,中南大学软件学院,1.1基本概念,二、翻译程序把某一种语言程序(称为源语言程序)等价地转换成另一种语言程序(称为目标语言程序)的程序。
如:
中英互译系统、DBMS语言(DDL,DCL),12,2022/10/14,中南大学软件学院,三、编译程序(compiler)把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序。
编译程序分类诊断编译程序&
优化编译程序交叉编译程序&
可变目标编译程序,1.1基本概念,13,2022/10/14,中南大学软件学院,四、解释程序把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。
1.1基本概念,14,2022/10/14,中南大学软件学院,编译程序vs.解释程序,编译,解释,15,2022/10/14,中南大学软件学院,五、执行高级语言程序的步骤把高级语言程序编译成低级语言目标程序执行目标程序,1.1基本概念,16,2022/10/14,中南大学软件学院,把英文翻译为中文识别出句子中的一个个单词;
分析句子的语法结构;
根据句子的含义进行初步翻译;
对译文进行修饰;
写出最后的译文。
1.2编译过程,17,2022/10/14,中南大学软件学院,一、高级语言程序的编译过程词法分析语法分析中间代码产生优化目标代码生成,1.2编译过程,作用、实现者,(并非每个编译过程均有以上全过程),18,2022/10/14,中南大学软件学院,1.词法分析,任务:
输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号。
依循的原则:
构词规则描述工具:
正规式和有限自动机FORI:
=1TO100DO保留字标识符等符整常数保留字整常数保留字,19,2022/10/14,中南大学软件学院,2.语法分析,任务:
在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位。
语法规则描述工具:
上下文无关文法Z:
=X+0.618*Y算术表达式,赋值语句(层次结构分析),20,2022/10/14,中南大学软件学院,3.中间代码产生,任务:
对各类不同语法范畴按语言的语义进行初步翻译。
语义规则中间代码:
三元式,四元式,树形结构等Z:
=X+0.618*Y翻译成四元式为
(1)*0.618YT1
(2)+XT1T2(3):
=T2_Z,21,2022/10/14,中南大学软件学院,4.优化,任务:
对于前阶段产生的中间代码进行加工变换,以期在最后阶段产生更高效的目标代码。
程序的等价变换规则FORK:
=1TO100DOBEGINX:
=I+1;
M:
=I+10*K;
N:
=J+10*K;
END,22,2022/10/14,中南大学软件学院,中间代码
(一),序号OPROPN1OPN2RESULT注释
(1):
=1KK:
=1
(2)j100K(10)if(100K)goto(10)(3)+I1XX:
=I+1(4)*10KT1T1:
=10*K(5)+IT1MM:
=I+T1(6)*10KT2T2:
=10*K(7)+JT2NN:
=J+T2(8)+K1KK:
=K+1(9)j
(2)goto
(2)(10),23,2022/10/14,中南大学软件学院,转换后的等价代码
(二),序号OPROPN1OPN2RESULT注释
(1)+I1XX:
=I+1
(2):
=IMM:
=I(3):
=JNN:
=J(4):
=1(5)j100K(10)if(100K)goto(10)(6)+M10MM:
=M+10(7)+N10NN:
=N+10(8)+K1KK:
=K+1(9)j(5)goto(5)(10),24,2022/10/14,中南大学软件学院,5.目标代码产生,任务:
把中间代码变换成特定机器上的目标代码。
依赖于硬件系统结构和机器指令的含义目标代码三种形式:
绝对指令代码:
可直接运行可重新定位指令代码:
连接装配,汇编指令代码:
需要进行汇编,25,2022/10/14,中南大学软件学院,模块Aa,模块Bb,模块Cc,模块Aa,模块Bb,模块Cc,模块Aa,模块D,模块Cc,26,2022/10/14,中南大学软件学院,5.目标代码产生,例:
b=a+2MOVa,R1ADD#2,R1MOVR1,b0001010000000000*00110110000000100100010000000100*L=00001111000101000000111100110110000000100100010000010011,27,2022/10/14,中南大学软件学院,二、编译程序的逻辑结构,1.2编译过程,28,2022/10/14,中南大学软件学院,三、表格与表格管理常见的表格:
符号名表,常数表,标号表,入口名表,过程引用表。
格式:
名字,信息,1.2编译过程,29,2022/10/14,中南大学软件学院,例:
PASCAL程序段:
PROCEDUREINCWAP(M,N:
INTEGER);
LABELSTART;
VARK:
INTEGER;
BEGINSTART:
K:
=M+1;
=N+4;
=K;
END.,30,2022/10/14,中南大学软件学院,31,2022/10/14,中南大学软件学院,32,2022/10/14,中南大学软件学院,四、出错处理出错处理程序:
发现源程序中的错误,把有关错误信息报告给用户语法错误语义错误,1.2编译过程,33,2022/10/14,中南大学软件学院,五、遍(Pass)所谓“遍”,对源程序或源程序的中间结果从头到尾扫描一次,并作有关的加工处理,生成新的中间结果或目标程序。
每遍由从外存上获得前一遍的工作结果开始,完成工作后,把结果存在外存上。
每遍工作完成后所占用的存贮空间大部分被释放。
例:
IBMPascal:
Pass1,Pass2Link?
生成可重定位代码。
所以运行时要连接成绝对指令代码。
1.2编译过程,34,2022/10/14,中南大学软件学院,编译前端:
与源语言有关,如词法分析,语法分析,语义分析与中间代码产生,与机器无关的优化编译后端:
与目标机有关,与目标机有关的优化,目标代码产生,前端,后端,1.2编译过程,六、编译前端与后端,35,2022/10/14,中南大学软件学院,程序设计环境编辑程序编译程序连接程序调试工具集成化的程序设计环境,1.3编译程序与程序设计环境,36,2022/10/14,中南大学软件学院,.NETFramework与VS.NET,37,2022/10/14,中南大学软件学院,编译程序的生成以汇编语言和机器语言为工具优点:
可以针对具体的机器,充分发挥计算机的系统功能。
生成的程序效率高。
缺点:
程序难读、难写、易出错、难维护、生产的效率低。
1.3编译程序与程序设计环境,38,2022/10/14,中南大学软件学院,高级语言书写,优点:
程序易读、易理解、容易维护、生产的效率高。
难以充分发挥计算机的系统功能,生成的程序效率低。
1.3编译程序与程序设计环境,39,2022/10/14,中南大学软件学院,高级语言书写利用已有的某种语言的编译程序实现另一语言的编译程序。
1.3编译程序与程序设计环境,40,2022/10/14,中南大学软件学院,移植方法把一种机器上的编译程序移植到另一种机器上。
1.3编译程序与程序设计环境,41,2022/10/14,中南大学软件学院,L1+L2+.+Ln,L1+L2,自展技术,L1,1.3编译程序与程序设计环境,42,2022/10/14,中南大学软件学院,编译程序自动产生编译程序-编译程序,编译程序书写系统,LEX词法分析程序产生器YACC语法分析程序产生器,编译程序自动产生器,1.3编译程序与程序设计环境,43,2022/10/14,中南大学软件学院,一、参数传递模块之间进行参数传递有三种形式:
1、传地址(callbyreference):
把实在参数的地址传递给相应的形式参数2、传值(callbyvalue):
调用段把实在参数的值计算出来并放在被调用段可以拿到的地方,把值带入。
3、传名(callbyname):
过程调用的作用相当于把被调用的过程体抄到调用出现的地方,但把其中任一出现的形式参数都替换成相应的实在参数(文字替换)。
1.4高级语言程序简介,44,2022/10/14,中南大学软件学院,二、存贮管理1、静态存贮分配编译时就安排好目标程序运行时的全部数据空间,并能确定每个数据项目的单元地址。
2、动态存贮分配如果允许递归、可变数据结构,则必须动态分配。
栈式:
整个程序数据空间安排在一个栈中堆式:
允许自由地申请和退还空间,1.4高级语言程序简介,45,2022/10/14,中南大学软件学院,例:
对于下述程序,试分析用传名、传值、传地址方法传递参数时所得的打印结果。
PROGRAMSS(input,output);
VARA,B:
integer;
PROCEDUREP(x,y,z:
integer);
beginy:
=y+1;
z:
=z+x;
end;
BEGINA:
=2;
b:
=3;
P(A+B,A,A);
writeln(A=,A);
END,1.4高级语言程序简介,46,2022/10/14,中南大学软件学院,解:
(1)传名:
相当于执行A:
B:
A:
=A+1;
=A+(A+B)writeln(A=,A);
所以,结果为A=9
(2)传值:
把实参的值计算出来传给形参。
在调用过程P时,形参x=5;
y=2;
z=2出过程P时,形参x=5;
y=3;
z=7这并不把结果回送到主程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 软件 学院