《语义分析IV》PPT课件

《语义分析IV》PPT课件

ID:45660510

大小:934.50 KB

页数:42页

时间:2019-11-16

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

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

1、编译原理和技术大连理工软件学院胡彦huyan.ssdut@gmail.com本讲纲要模拟继承属性计算继承属性在栈上的位置确定继承属性在栈上的位置不确定4.4L属性的自下而上计算DTLL,rL,qpinttypeininin产生式代码段DTLTintval[top]:=integerTrealval[top]:=realLL1,idaddtype(val[top],val[top3])Lidaddtype(val[top],val[top1])继承属性在栈上某个确定位置的例子4.4L属性的自下而上计算DTLL,rL,qpinttype

2、ininin每个L结点上L.in=T.type状态输入所用产生式-intp,q,rintp,q,rTp,q,rTintTp,q,rTL,q,rLidTL,q,rTL,q,rTL,rLL,idTL,rTL,rTLLL.idDDTLLid{addtype(id.entry,L.in)}L{L1.in:=L.in}L1,id{addtype(id.entry,L.in)}L{L1.in:=L.in}L1,id{addtype(id.entry,L.in)}继承属性在栈上某个确定位置的例子4.4L属性的自下而上计算所依赖的属性在分析栈上的位置不能静态

3、确定SaACC.i:=A.sSbABCC.i:=A.sCcC.s:=g(C.i)考虑一下:当分析栈中出现符号C的时候,C.i可能存放在什么位置情况1:当前句柄是aAC,这时C.i可以用val[top-1]表示情况2:当前句柄是bABC,这时C.i可以用val[top-2]表示4.4L属性的自下而上计算所依赖的属性在分析栈上的位置不能静态确定SaACC.i:=A.sSbABCC.i:=A.sCcC.s:=g(C.i)处理办法:增加标记非终结符SaACC.i:=A.sSbABMCM.i:=A.s;C.i:=M.sCcC.s:=g(C.i)MM

4、.s:=M.i4.4L属性的自下而上计算所依赖的属性在分析栈上的位置不能静态确定SaACC.i:=A.sSbABCC.i:=A.sCcC.s:=g(C.i)处理办法:增加标记非终结符SaACC.i:=A.sSbABMCM.i:=A.s;C.i:=M.sCcC.s:=g(C.i)MM.s:=M.iSaACSbABMCCcval[top]=g(val[top-1])Mval[top+1]=val[top-1]4.4L属性的自下而上计算4.4.3一般情况:模拟继承属性的计算继承属性是某个综合属性的一个函数SaACC.i:=f(A.s)C

5、cC.s:=g(C.i)例如:f(x)=2*x或者x+3,…4.4L属性的自下而上计算4.4.3模拟继承属性的计算继承属性是某个综合属性的一个函数SaACC.i:=f(A.s)CcC.s:=g(C.i)增加标记非终结符,把f(A.s)的计算移到对标记非终结符归约时进行。SaANCN.i:=A.s;C.i:=N.sNN.s:=f(N.i)CcC.s:=g(C.i)这样,每次需要使用继承属性的时候,刚好都在本文法符号的正下方4.4L属性的自下而上计算例数学排版语言EQNS{B.ps:=10}B{S.ht:=B.ht}B{B1.ps:=B.ps}B1

6、{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}语义分析复习在计算文本的字体和高度的时候,无法确定所依赖的继承属性值的位置例如:栈顶元素可能是text=>BBtext=>BBBsubtext=>BsubB语义分析复习SL{B.ps:=L.s}B{S.ht:=B.ht}L{L.s:=10}B{B1.ps:=B.ps}B1{M.i:=B.ps}

7、M{B2.ps:=M.s}B2{B.ht:=max(B1.ht,B2.ht)}M{M.s:=M.i}B{B1.ps:=B.ps}B1sub{N.i=B.ps}N{B2.ps:=shrink(N.s)}B2{B.ht:=disp(B1.ht,B2.ht)}N{N.s:=N.i}Btext{B.ht:=text.hB.ps}4.4L属性的自下而上计算产生式语义规则SLBB.ps:=L.s;S.ht:=B.htLL.s:=10BB1MB2B1.ps:=B.ps;M.i:=B.ps;B2.ps:=M.s;B.ht:=max(B1.ht,B2.ht

8、)MM.s:=M.iBB1sub

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

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

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