《语义分析III》PPT课件

《语义分析III》PPT课件

ID:45660509

大小:560.50 KB

页数:29页

时间:2019-11-16

《语义分析III》PPT课件_第1页
《语义分析III》PPT课件_第2页
《语义分析III》PPT课件_第3页
《语义分析III》PPT课件_第4页
《语义分析III》PPT课件_第5页
资源描述:

《《语义分析III》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理和技术大连理工软件学院胡彦huyan.ssdut@gmail.com4.3L属性定义的自上而下计算S属性定义的计算边分析边计算分析完毕,属性也计算完毕问题:继承属性是否可以采用边分析边计算的方式进行?边分析边计算,使得语法和语义的计算都在一遍处理完毕,而不需要为语义分析而单独进行一遍编译分析4.3L属性定义的自上而下计算属性计算与分析方法之间的关系属性的计算次序受分析方法所限定的分析树结点建立次序的限制。分析树的结点是自左向右生成。所以,仅当属性信息是自左向右流动时,才有可能在分析的同时完成属性计算。4.

2、3L属性定义的自上而下计算4.3.1L属性定义如果每个产生式AX1X2…Xn的每条语义规则计算的属性是A的综合属性;或者是Xj的继承属性,1jn,但它仅依赖:该产生式中Xj左边符号X1,X2,…,Xj-1的属性;A的继承属性。S属性定义属于L属性定义。4.3L属性定义的自上而下计算L属性定义的例子:变量类型声明的语法制导定义产生式语义规则DTLL.in:=T.typeTintT.type:=integerTrealT.type:=realLL1,idL1.in:=L.in;addtype(id.en

3、try,L.in)Lidaddtype(id.entry,L.in)4.3L属性定义的自上而下计算intid1,id2,id3的分析树的依赖图DTLL.in:=T.typeDintT,id3LLLid2id1,1entry102entry3entryin98in76in54type4.3L属性定义的自上而下计算对于L属性定义,与S属性的一个最本质区别在于S属性定义中,只要将产生式作为一个整体看待即可,语义规则可以视为是附着在整个产生式上L属性定义则不一样,它跟属性所属的符号在产生式中的位置有关系为了对L属性定

4、义进行翻译,必须提一下一个概念翻译方案4.3L属性定义的自上而下计算4.3.2翻译方案语义动作(语义规则)插入到产生式右部的任何地方,以表达动作的执行时刻。AB{..}C4.3L属性定义的自上而下计算4.3.2翻译方案例把有加和减的中缀表达式翻译成后缀表达式如果输入是8+52,则输出是85+2。ETRRaddopT{print(addop.lexeme)}R1

5、Tnum{print(num.val)}ETRnum{print(8)}Rnum{print(8)}addopT{print(+)}R

6、num{print(8)}addopnum{print(5)}{print(+)}R…{print(8)}{print(5)}{print(+)}addopT{print()}R…{print(8)}{print(5)}{print(+)}{print(2)}{print()}4.3L属性定义的自上而下计算L属性定义的翻译方案的三条限制:产生式右部符号的继承属性必须在先于这个符号的动作中计算A->X{y.in=x.s}YZ=>OKA->XY{Y.in=x.s}Z=>ERROR一个动作不能引用该动作右边符号的

7、综合属性左部非终结符的综合属性只能在它所依赖的所有属性都计算完后才能计算4.3L属性定义的自上而下计算例数学排版语言EQNEsub1.valSBBB1B2BB1subB2BtextE1.val4.3L属性定义的自上而下计算例数学排版语言EQNEsub1.val产生式语义规则SBB.ps:=10;S.ht:=B.htBB1B2B1.ps:=B.ps;B2.ps:=B.ps;B.ht:=max(B1.ht,B2.ht)BB1subB2B1.ps:=B.ps;B2.ps:=shrink(B.ps);B.h

8、t:=disp(B1.ht,B2.ht)BtextB.ht:=text.hB.psE1.val4.3L属性定义的自上而下计算例数学排版语言EQNS{B.ps:=10}B{S.ht:=B.ht}B{B1.ps:=B.ps}B1{B2.ps:=B.ps}B2{B.ht:=max(B1.ht,B2.ht)}B{B1.ps:=B.ps}B1sub{B2.ps:=shrink(B.ps)}B2{B.ht:=disp(B1.ht,B2.ht)}Btext{B.ht:=text.hB.ps}4.3L属性定义的自上

9、而下计算4.3.3预测翻译器的设计目标:为文法计算其中的L属性值方法:把预测分析器的构造方法推广到翻译方案的实现产生式R+TR

10、的分析过程procedureR;beginiflookahead=‘+’thenbeginmatch(‘+’);T;Rendelsebegin/*什么也不做*/endend4.3L属性定义的自上而下计算例左递归的消除引起继承属性产生式语义规则

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

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

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