语义分析和代码生成ppt课件.ppt

语义分析和代码生成ppt课件.ppt

ID:59003465

大小:512.00 KB

页数:81页

时间:2020-09-27

语义分析和代码生成ppt课件.ppt_第1页
语义分析和代码生成ppt课件.ppt_第2页
语义分析和代码生成ppt课件.ppt_第3页
语义分析和代码生成ppt课件.ppt_第4页
语义分析和代码生成ppt课件.ppt_第5页
资源描述:

《语义分析和代码生成ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章语义分析和代码生成Thegoodseamanisknowninbadweather.惊涛骇浪,方显英雄本色9.1语义分析的概念9.2中间代码9.3声明的处理9.4表达式语句9.5if语句9.6while语句9.7for循环语句9.8write语句9.9read语句9.10过程调用和返回9.11语义分析及代码生成实现第9章语义分析和代码生成(P169)声明的处理表达式语句if语句while语句for循环语句write语句read语句过程调用和返回学习重点9.1语义分析的概念语义错误:在语法分析中,严格按文法(上下文无关文法)来检查语句的语法是否正确,但有些语句单看

2、语法结构并没有错误,但考虑该语句所处的上下文会引起错误,称这种错误为语义错误。在语义分析时会处理语义错误。例(P169)考虑下段程序,有哪些语义错误?{inta;intb;reala,c;d=a+b;}9.1语义分析的概念语义分析主要借助符号表记录的信息来实现语义分析动作。常见的语义分析动作有:1)对表达式中的操作数进行类型的一致性检查。当发现类型不一致时,则强制或自动作相应的类型转换。2)语义分析的另一个重要功能是要分析由语法分析所识别出来的语句的意义并作相应的语义处理。例如,对声明语句,用户通过这类语句声明程序中要使用的变量,并说明其种类和类型等特性。语义分析程序

3、就要将变量名及其有关属性填入符号表,以备后面使用。对于程序中的可执行语句,则要根据该语句的语义生成相应的中间代码或目标代码。9.2中间代码使用中间代码的优点:不考虑机器的特性,使生成的中间代码较为简单。生成中间代码的编译程序移植性好,只需为该中间代码开发一个解释器或者将中间代码翻译为目标机指令就能在目标机上运行。在中间代码上更便于做优化处理。常见的中间代码:(1)波兰后缀表示(2)N-元表示三元式四元式9.2中间代码波兰后缀表示的特点:操作符位于操作数之后。例(P170)算术表达式:F*3.1416*R*(H+R)波兰后缀表示:F3.1416*R*HR+*赋值表达式:

4、S=F*3.1416/R*(H+R)波兰后缀表示:SF3.1416*R/HR+*=9.2中间代码将中缀表达式转换成波兰后缀表示的算法实现:设置一个操作符栈,当扫描到操作数时,就立即输出该操作数。当遇到操作符时,则要与栈顶操作符比较其优先级,若栈顶操作符优先级高于栈外操作符,则输出该栈顶操作符;反之,则栈外操作符入栈。而对于赋值表达式,只需定义赋值操作符“=”的优先级低于可在表达式中出现的其他操作符。波兰后缀表示除可用来表示表达式类的语言结构以外,也能够通过操作符的扩充来表示其他的语言结构。9.2中间代码例(P171)条件语句:ifthenel

5、se可转换成波兰后缀表示:BZBR注意:在该波兰表示中,引入了BZ和BR操作符。BZ:如果的值为假,则产生到的转移,而的入口地址。BR:它产生到的转移,而是一个紧跟在后面的语句的入口地址。9.2中间代码9.2中间代码三元式的一般表示:<操作符>,<操作数1>,<操作数2>9.2中间代码例(P171)表达式W*X+(Y+Z)可用如下三元式序列表示:(

6、1)*,W,X(2)+,Y,Z(3)+,(1),(2)对每一个三元式都编上号码,且对前面三元式的计算结果的引用可用三元式的编号来表示。例(P171)条件语句if(X>Y)Z=X;elseZ=Y+1;可以用如下三元式序列表示:(1)>,X,Y(2)BMZ,(1),(5)(3)=,Z,X(4)BR,,(7)(5)+,Y,1(6)=,Z,(5)(7)…注意:操作符BMZ和BR分别表示零转移和无条件转移。9.2中间代码四元式的一般形式:<操作符>,<操作数1>,<操作数2>,<结果>其中,<结果>表示操作符操作的结果,该结果通常是一临时变量,在以后可以由编译程序分配给一个寄存

7、器或者一个主存地址。四元式的优点是便于进行优化处理。9.2中间代码例(P172)表达式(A+B)*(C+D)-E能够由下列四元式序列表示:+,A,B,T1+,C,D,T2*,T1,T2,T3-,T3,E,T4注意:T1、T2、T3和T4均是临时变量。要开发出可移植又适用的编译程序的一种方法是使编译程序产生一种作为源程序中间形式的抽象机的代码。而该抽象机的指令应当尽可能模仿所编译的源语言的结构,且具备下列特点:1、可移植性:如果花很小的代价,就能将一个程序移植到另一台机器上,那么称该程序是可移植的。2、可适应性:如果一个程序能够容易地进行修改就能满足不

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。