- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.3 L属性定义的自上而下计算.ppt
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 4.4 L属性的自下而上计算 2、属性的位置不能预测 S ? aAC C.i = A.s S ? bABC C.i = A.s C ? c C.s = g(C.i) 增加标记非终结符,使得位置可以预测 S ? aAC C.i = A.s S ? bABMC M.i = A.s; C.i = M.s C ? c C.s = g(C.i) 还得考虑M.s M ? ? M.s = M.i 计算的可预测 4.4 L属性的自下而上计算 4.4.3 模拟继承属性的计算 继承属性是某个/些综合属性的一个函数 S ? aAC C.i = f (A.s) C ? c C.s = g(C.i) 增加标记非终结符,把f(A.s)的计算移到对标记非终结符归约时进行 S ? aANC N.i = A.s; C.i = N.s N ? ? N.s = f (N.i) C ? c C.s = g(C.i) 4.4 L属性的自下而上计算 例 数学排版语言EQN S ? {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 } B1 sub { B2.ps = shrink(B.ps) } B2 {B.ht = disp (B1.ht, B2.ht ) } ?B ? text {B.ht = text.h ? B.ps } 4.4 L属性的自下而上计算 产 生 式 语 义 规 则 S ? LB B.ps = L.s; S.ht = B.ht L ? ? L.s = 10 将B.ps存入栈中,便于引用 B ? B1 MB2 B1.ps = B.ps; M.i = B.ps; B2.ps = M.s;B.ht = max(B1.ht, B2.ht ) M ? ? M.s = M.i B ? B1 sub NB2 B1.ps =B.ps; N.i = B.ps; B2.ps = N.s; B.ht = disp (B1.ht, B2.ht ) N ? ? N.s = shrink(N.i) B ? text B.ht = text.h ? B.ps 4.4 L属性的自下而上计算 产 生 式 语 义 规 则 S ? LB B.ps = L.s; S.ht = B.ht L ? ? L.s = 10 将B.ps存入栈中,便于引用 B ? B1 MB2 B1.ps = B.ps; M.i = B.ps; B2.ps = M.s;B.ht = max(B1.ht, B2.ht ) M ? ? M.s = M.i 单纯为了属性位置可预测 B ? B1 sub NB2 B1.ps =B.ps; N.i = B.ps; B2.ps = N.s; B.ht = disp (B1.ht, B2.ht ) N ? ? N.s = shrink(N.i) B ? text B.ht = text.h ? B.ps 4.4 L属性的自下而上计算 产 生 式 语 义 规 则 S ? LB B.ps = L.s; S.ht = B.ht L ? ? L.s = 10 将B.ps存入栈中,便于引用 B ? B1 MB2 B1.ps = B.ps; M.i = B.ps; B2.ps = M.s;B.ht = max(B1.ht, B2.ht ) M ? ? M.s = M.i 单纯为了属性位置可预测 B ? B1 sub NB2 B1.ps =B.ps; N.i = B.ps; B2.ps = N.s; B.ht = disp (B1.ht, B2.ht ) N ? ? N.s = shrink(N.i) 兼有计算功能 B ? text
文档评论(0)