- 1、本文档共81页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
天津大学编译原理讲义-Part6属性文法和语法制导翻译
L-属性定义的语法制导翻译 设计L属性定义的语法制导翻译需要注意以下几点: 基本设计原则:当某个动作引用一个属性时,这个属性是可用的。也就是说,一个动作不会引起一个没有计算出来的属性。 只有综合属性时 为每一个语义规则建立一个赋值动作,并把该动作放在产生式右部的末尾 T→T1*F T.val := T1.val ×F.val T→T1*F {T.val := T1.val ×F.val} L-属性定义的语法制导翻译 同时存在综合属性和继承属性时: 产生式右部符号的继承属性必须在这个符号以前的动作中计算出来 一个动作不能引用该动作右部符号的综合属性 产生式左部非终结符的综合属性只有在其引用的所有属性值都计算出来以后才能计算。计算该属性的动作通常放在产生式右部的末尾。 下面的翻译模式不符合上面的定义: S→A1A2 {A1.in := 1; A2.in := 2} A→a {print(A.in)} 按深度优先遍历时,要打印第二个产生式里的继承属性A.in时,该属性还没有被定义。 L-属性文法举例 产生式 语义规则 S→B B.ps := 10 S.ht := B.ht B→B1B2 B1.ps := B.ps B2.ps := B.ps B.ht := max(B1.ht, B2.ht) B→ B1 sub B2 B1.ps := B.ps B2.ps := shrink(B.ps) B.ht := disp(B1.ht, B2.ht) B→text B.ht := text.h ×B.ps 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} L-属性文法的自顶向下翻译 在预测分析的过程中实现L-属性文法 为了明显的看出动作和属性计算发生的属性,我们使用翻译模式而不是属性文法。 为了构造不带回溯的自顶向下语法分析,必须消除文法中的左递归。 将前面讲过的方法扩充,从翻译模式中消除左递归(LL(1)文法构造的步骤),这种方法也适用于带有综合属性的翻译模式。 举例 E→E1+T {E.val := E1.val + T.val} E→E1-T {E.val := E1.val - T.val} E→T {E.val := T.val} T→(E) {T.val := E.val} T→num {T.val := num.val} E→T {R.i := T.val} R {E.val := R.s} R→+ T {R1.i := R.i + T.val} R1 {R.s := R1.s} R→- T {R1.i := R.i - T.val} R1 {R.s := R1.s} R→ε {R.s := R.i} T→( E ) {T.val := E.val} T→num {T.val := num.val} 9-5+2 R - T num R ε E T num R + T num val=9 val=9 i=9 val=5 val=5 i=4 val=2 val=2 i=6 s=6 val=6 一个符号继承属性必须由出现这个符号之前的动作来计算,产生式左边非终结符的综合属性必须在它所依赖的所有属性都计算出来之后才能计算 消除左递归的一般方法 假设有如下的翻译模式 A→A1Y {A.a := g(A1.a, Y.y)} A→X {A.a := f(X.x)} 每个文法符号都有综合属性,g和f是任意函数。 文法可以转换为: A→XR R→YR | ε 考虑语义动作,变为: A→X {R.i := f(X.x)} R {A.a := R.s} R→Y {R1.i := g(R.i, Y.y)} R1 {R.s :=
您可能关注的文档
- 声速的测量(王小贞老师).ppt
- 声波测井1402.pptx
- 多种多样的茶制品.pptx
- 检测培训《粗细集料试验矿料级配设计》07116.ppt
- 大学生体质健康测试相关问题研究.ppt
- 梁芳敏春训交流材料.ppt
- 多质点系地震作用计算.ppt
- 大学物理ppt4西农.ppt
- 大学物理第04章_功和能.ppt
- 大学生创业咖啡店ppt.pptx
- 新教科版三年级上册科学《期末测试卷》含答案【夺分金卷】.docx
- 新教科版三年级上册科学《期末测试卷》含答案(精练).docx
- 新教科版三年级上册科学《期末测试卷》含答案【名师推荐】.docx
- 新教科版三年级上册科学《期末测试卷》含答案【培优】.docx
- 新教科版三年级上册科学《期末测试卷》带答案(典型题).docx
- 新教科版三年级上册科学《期末测试卷》含答案(综合题).docx
- 新教科版三年级上册科学《期末测试卷》精品【全国通用】.docx
- 新教科版三年级上册科学《期末测试卷》含答案(模拟题).docx
- 新教科版三年级上册科学《期末测试卷》含答案.docx
- 河北省唐市山乐亭县2025届中考生物模拟试卷含解析.doc
最近下载
- 二单元民族学的源流理论视角及研究方法.ppt
- 我国政务B站号传播效果现状及影响因素研究.docx VIP
- DB15T 3962.7-2025绿色矿山建设规范 第7部分:水泥灰岩行业.pdf VIP
- 高中语文统编版下册《祝福》、《林教头风雪山神庙》联读 (1).pptx
- 一种D-手性肌醇的制备方法.pdf VIP
- 辽宁省2024学年度普通高中学业水平合格性考试化学试题及答案.docx
- 跨境电商平台的财务管理策略.docx VIP
- 合规性评价报告(2025年).docx
- 【英语试卷+答案】2024年宁德市4月初中毕业班质量检测.pdf VIP
- 2025云南省红河州开远市纪委监委招聘合同制辅助人员(8人)笔试备考试题及答案解析.docx VIP
文档评论(0)