- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四讲 属性文法和语法制导翻译;§1. 属性文法;属性的类型; 注意:
(1)终结符只有综合属性,由词法分析器提供;
(2)非终结符既可以有综合属性也可以有继承属性。文法开始符号的所有继承属性作为属性计算前的初始值。; 在一个属性文法中,对应于每个产生式A??都有一套与之相关联的语义规则,每条语义规则的形式为:
b:=f(c1,c2,…,ck) 其中f是一个函数,并且满足下面两种情况之一:
(1)b是A的一个综合属性并且c1,c2,…ck是产生式右边文法符号的属性; (2)b是产生式右边某个文法符号的一个继承属性并且c1,c2,…ck是A或产生式右边任何文法符号的属性。
对这两种情况都称为属性b依赖于属性c1,c2,…,ck;语义规则; 下表是一个台式计算器程序的属性文法。该计算器读入一个算术表达式,计算并打印它的值,每个输入行以n作为结束。 在这些语义规则中,一个整数综合属性val把每个非终结符E,T,F联系起来。记号digit具有综合属性lexval,其值由词法分析器提供。;L;;10;§2. 基于属性文法的处理方法;依赖图;依赖图的画法;[例]依赖图;[例]依赖图;良定义文法和属性的计算次序;树遍历的属性计算方法;一遍扫描的处理方法;抽象语法树; 为每个运算分量或运算符号都建立一个结点来为子表达式建立子树。运算符号结点的各子结点分别是表示该运算符号的各个运算分量的子表达式组成的子树的根。;;a+5*b的语法树的构造;a+5*b的语法树的构造;a+5*b的语法树的构造;a+5*b的语法树的构造;a+5*b的语法树的构造;a+5*b的语法树的构造;a+5*b的语法树的构造;a+5*b的语法树的构造;a+5*b的语法树的构造;§3. S-属性文法的自下而上计算; 假设图中的栈是由一对数组state和val来实现的。每一个state元素都是一个指向LR(1)分析表的指针(或索引)。(注意,文法符号隐含在state中而不需要存储在栈中)。然而,如果像第五章中的那样把文法符号存入栈中时,那么当第i个state对应的符号为A时,val[i]中就存放语法树中与结点A对应的属性值。
设当前栈顶由指针top指示。我们假设综合属性是刚好在每次归约前计算的。假设语义规则A.a:=f(X.x,Y.y,Z.z)是对应于产生式A?XYZ??。在把XYZ归约成A以前,属性Z.z的值放在val[top]中,Y.y的值放在val[top-1]中,X.x的值放在val[top-2]中。如果一个符号没有综合属性,那么数组val中相应的元素就不定义。归约后,top值减2,A的状态存放在state[top]中(也就是X的位置)综合属性A.a的值存放在val[top]中。;边分析边翻译的方式能否用于继承属性?
属性的计算次序一定受分析方法所限定的分析树结点建立次序的限制
分析树的结点是自左向右生成
如果属性信息是自左向右流动,那么就有可能在分析的同时完成属性计算;§4. L-属性文法和自顶向下翻译; 翻译模式;对继承属性出现位置的限制;不满足条件的例子;自顶向下翻译;消除左递归; 翻译模式变为:
A→X { R.i:=f(X.x) }
R { A.a:=R.s }
R→Y { R1.i:=g(R.i,Y.y) }
R1 { R.s:= R1.s }
R→ε { R.s:= R.i }
经过转换的翻译模式,使用了R的继承属性i和综合属性s.
⊙ 考虑产生算术表达式的文法,它的翻译模式如何?; 求值翻译模式:
使用属性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→ε { R.s:= R.i }
T→(
E
) { T.val:= E.val }
T→num {T.val:= num.val}; 构造语法树的翻译模式:
使用属性p来保存语法子树的根结点指针
E→T { R.i:=T.p }
R { E.p:=R.s }
R→+
T {R1.i:=mknod(‘+’,R.i,T.p)}
R1 { R.s:= R1.s }
R→ε { R.s:= R.i }
T→(
E
) { T.p:= E.p }
T→
您可能关注的文档
- 第三讲财务管理分析图的绘制方法.ppt
- 第二章 SPSS练习题.doc
- 艺术城扩初图纸说明幻灯片.doc
- 第七章 仓储专业术语.pdf
- 广驳运557海上货物运输合同留置权纠纷案.doc
- 第七章 超声波模具抛光机是利用超声波高速振动.pdf
- 学校心理学教程要点.doc
- 仪器分析 第02讲 光学分析法导论教案.ppt
- 医药保健品专业市场手册文案教案.doc
- 重建知识概念辨刘硕.pdf
- 毕马威-银行业可持续相关信息披露:2024年报告周期基准分析结果.pdf
- 国信证券-金属行业中期投资策略:供给收缩需求稳增,逆全球化下金属价值重估.pdf
- 方正证券-基础化工行业-25Q2化工景气底部延续,关注业绩增量具备确定性的板块及个股.pdf
- 西部证券-京东物流-2618.HK-首次覆盖报告-开放创新、稳健成长的一体化供应链龙头.pdf
- 东北证券-机械设备行业机器人轻量化-材料与技术的革新之路.pdf
- 西部证券-康农种业-837403-首次覆盖报告:种业后起之秀大单品快速放量打开成长空间.pdf
- 平安证券-社会服务行业2025年中期策略报告:新世代、新需求、新消费.pdf
- 长城证券-Robotaxi正式推出量子计算迎来最新突破看好智驾、量子产业链长期发展.pdf
- 国盛证券-容知日新-688768-蓝海市场渗透率提升,预测性维护让工业更美好.pdf
- 广发证券-金融-银行行业:如何理解外币存款增量回升?.pdf
最近下载
- 电力设备公司产品制造车间生产定额计件工资实施办法.docx VIP
- 2023国有企业“三重一大”决策制度实施细则办法.pdf VIP
- 安徽大学《地球科学概论》课件-第4讲大气圈、冰冻圈、岩石圈.pptx VIP
- 国家开放大学(电大)《农业生态基础.》2020年09月春季期末考试真题及答案(试卷代号2794).pdf VIP
- 餐饮行业员工职业规划.pptx VIP
- 《数学数学期望》课件.ppt VIP
- 肾病内科专业疾病临床诊疗规范2025版.docx VIP
- 质量信得过班组培训课件.pptx VIP
- 《高级英语FacetoFacewithHurricaneCamille》-精选课件(公开).ppt VIP
- 高中化学课件:芳环上的亲核取代反应.pptx VIP
文档评论(0)