编译原理第6章.ppt

编译原理第6章.ppt

ID:48349451

大小:1.17 MB

页数:82页

时间:2020-01-18

编译原理第6章.ppt_第1页
编译原理第6章.ppt_第2页
编译原理第6章.ppt_第3页
编译原理第6章.ppt_第4页
编译原理第6章.ppt_第5页
资源描述:

《编译原理第6章.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、源语言程序中间代码汇编代码词法分析语义分析语法分析中间代码生成代码生成在编译中的逻辑阶段前端处理后端处理语义处理语义处理(语义分析和中间代码生成)源语言程序汇编代码词法分析语义分析语法分析代码生成前端处理后端处理语义处理语义处理语义处理语义处理的任务:静态语义检查静态语义:语法规则的良形式条件静态语义检查:审查静态语义动态语义处理动态语义:程序单元执行的操作动态语义处理:生成(中间/目标)代码语义处理语义处理的实现:属性文法:描述语义规则。语法制导翻译:在语法分析的同时,执行语义规则描述的动作:检查静态语义生成中间代码/目标

2、代码语义处理语义处理的环境:符号表为语义分析提供类型、作用域等信息。为代码生成提供类型、作用域、存储类别、存储(相对)位置等信息。6第六章 属性文法和语法制导翻译6.1属性文法6.2基于属性文法的处理方法6.3S—属性文法的自下而上计算6.4L—属性文法和自顶向下翻译6.5自下而上计算继承属性76.1属性文法一、基本概念1.属性广义:用以描述事物或人的特征、性质、品质等等。狭义:代表与文法符号相关的信息,其信息值即为属性值。例如:其类型、值、代码序列、符号表内容等。8(1)属性与变量一样,可以进行计算和传递。6.1属性文法(

3、2)属性加工的过程即是语义处理的过程。(3)属性综合属性:继承属性:用于“自上而下”传递信息。用于“自下而上”传递信息。注:92.语义规则为文法的每一个产生式配备的计算属性的计算规则,称为语义规则。3.属性文法在上下文无关文法的基础上,为每个文法符号(终结符或非终结符)引进一组属性,且让该文法中的重写规则附加上语义规则时,称该上下文无关文法为属性文法。注:属性文法往往以语法制导翻译和翻译方案两种形式出现。6.1属性文法属性文法属性文法(attributegrammar)是一个三元组:A=(G,V,F),其中G:是一个上下文无

4、关文法V:有穷的属性集,每个属性与文法的一个终结符或非终结符相连,这些属性代表与文法符号相关信息,如它的类型、值、代码序列、符号表内容等等.属性与变量一样,可以进行计算和传递。属性加工的过程即是语义处理的过程。F:关于属性的属性断言或一组属性的计算规则(称为语义规则).断言或语义规则与一个产生式相联,引用该产生式左端或右端的终结符或非终结符相联的属性.11二、基本规则1.语义规则的形式:产生式Aα的语义规则的形式为b:=f(c1,c2,…,ck)其中:(1)f是一个函数;通常以表达式的形式出现⇒属性b依赖于属性c1,c2,

5、…,ck(2)或者b—A的综合属性,且c1,c2,…,ck是α中文法符号的属性;6.1属性文法(3)或者b—α中某个文法符号的继承属性,且c1,c2,…,ck是A或α中任何文法符号的属性.b有两种可能122.VT—VN的属性(1)VT—只有综合属性,由词法分析器提供.6.1属性文法(2)VN—既可有综合属性也可有继承属性;开始符号S的所有继承属性作为属性计算前的初始值.出现在产生式左边的继承属性和出现在产生式右边的综合属性不由所给定的产生式的属性计算规则进行计算,它们由其它产生式的属性规则计算或者由属性计算器的参数提供。A

6、X1X2…XnA的综合属性S(A)计算公式S(A):=f(I(X1),…,I(Xn))Xj的继承属性T(Xj)计算公式T(Xj):=f(I(A),...I(Xn))1)非终结符既可有综合属性也可有继承属性2)终结符只有综合属性,它们由词法程序提供.143.属性的计算/获得(1)产生式右边的继承属性产生式左边的综合属性(2)产生式左边的继承属性产生式右边的综合属性由该产生式提供的计算规则计算获得由其它产生式的属性规则计算或由属性计算器的参数提供6.1属性文法15例6.1:考虑非终结符A,B和C,其中,A有一个继承属性a和一个综

7、合属性b,B有综合属性c,C有继承属性d。C.d:=B.c+1A.b:=A.a+B.c产生式ABC可能有规则:属性A.a和B.c在其它地方计算。A.a—左部继承属性A.b—左部综合属性B.c—右部综合属性C.d—右部继承属性6.1属性文法16例6.2:一个简单台式计算器的属性文法产生式语义规则LEnEE1+TETTT1*FTFF(E)FdigitPrint(E.val)E.val:=E1.val+T.valE.val:=T.valT.val:=T1.val*F.valT.val:=F.valF.val:=E.

8、valF.val:=digit.lexval6.1属性文法17三、综合属性1.语法树中,一个结点的综合属性的值由其子结点的属性值确定;2.通常使用自底向上的方法在每一个结点处使用语义规则计算综合属性的值.S—属性文法:仅使用综合属性的属性文法.6.1属性文法18例6.3:例6.2的表中定义

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

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

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