- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理6-1-属性文法.ppt
第六章 属性文法和语法制导翻译 6.1 属性文法 6.2 基于属性文法的处理方法 6.3 S-属性文法的自下而上计算 6.4 L-属性文法和自顶向下翻译 6.5 自下而上计算继承属性 语义分析 静态语义分析 类型检查、控制流检查 、一致性检查 名字的作用域分析 动态语义分析 栈溢出 数组越界 a[i] 编译中的语义处理 静态语义分析或静态审查 执行真正的翻译 翻译成中间表示形式 翻译成目标代码 语义形式形式化 词法分析-正规式,正规文法,有穷自动机 语法分析-上下文无关文法 语义分析-难于形式化描述 属性文法 6.1 属性文法 属性文法(属性翻译文法) 是在上下文无关文法的基础上,为每个文法符号(终结符或非终结符)配备若干相关的“值”(称为属性)。 属性:类型、值、代码序列、符号表内容… 属性通常分为两类 综合属性 用于“自下而上”传递信息 继承属性 用于“自上而下”传递信息 或者在兄弟之间传递信息 语义规则的形式 在一个属性文法中,对应于每个产生式A→α都有一套与之相关联的语义规则, 每条规则的形式为 b := f(c1,c2,…,ck) 属性b依赖于属性 c1,c2,…,ck (1)或者 b是A的一个综合属性, 并且c1,c2,…,ck 是产生式右边文法符号的属性; (2)或者 b是产生式右边某个文法符号的一个继承属性, 并且c1,c2,…,ck 是A或产生式右边任何文法符号的属性。 注意 终结符 只有综合属性,它们由词法分析器提供 非终结符 既可有综合属性也可有继承属性 例: 产生式A→BC有规则 S-属性文法 仅仅使用综合属性的属性文法称 S-属性文法 在语法树中,一个结点的综合属性的值由其 子结点的属性值确定。 通常使用自底向上的方法在每一个结点处使用语义规则计算综合属性的值。 继承属性 在语法树中,一个结点的继承属性由此结点的父结点和/或兄弟结点的某些属性确定。 用继承属性来表示程序设计语言结构中的上下文依赖关系很方便。 语义规则 属性计算 类型说明 符号表操作 代码生成 …… 补充例 1 补充例 2 为下面文法配备语义规则,使得语义处理结果是将中缀表达式变为后缀表达式 补充例 3 G: N?S.S S ?SB S ?B B ?0 B ?1 给文法配备语义规则, 完成二进制到十进制的转换 输入- 11.01 输出- 3.25 11.01= 1*21+1*21+0*2-1+1*2-2 N?S1.S { N.v=S1.v+S.v*2-S.L } S ?S1B { S.v=S1.v*2+B.v, S.L=S1.L+1 } S ?B { S.v=B.v, S.L=1 } B ?0 { B.v=0 } B ?1 { B.v=1 } N?S1.S { N.v=S1.v+S.v*2-S.L } S ?S1B { S.v=S1.v*2+B.v, S.L=S1.L+1 } S ?B { S.v=B.v, S.L=1} B ?0 { B.v=0 } B ?1 { B.v=1 } N?S1.S { N.v=S1.v+S.v*2-S.L } S ?S1B { S.v=S1.v*2+B.v, S.L=S1.L+1 } S ?B { S.v=B.v, S.L=1} B ?0 { B.v=0 } B ?1 { B.v=1 } 11.01= 1*21+1*21+0*2-1+1*2-2 N?S1.S { N.v=S1.v+S.v, S1.f=1, S.f=2-S.L } S ?S1B { S.L=S1.L+1,S1.f=S.f*2, B.f=S.f, S.v=S1.v+B.v } S ?B { S.L=1, B.f=S.f, S.v=B.v } B ?0 { B.v=0 } B ?1 { B.v=B.f } 11.01= 1*21+1*21+0*2-1+1*2-2 N?S1.S { N.v=S1.v+S.v, S1.f=1, S.f=2-S.L } S ?S1B { S.L=S1.L+1, S1.f=S.f*2, B.f=S.f, S.v=S1.v+B.v } S ?B { S.L=1, B.f=S.f, S.v=B.v} B
您可能关注的文档
最近下载
- 【MOOC】《过程控制》(南京邮电大学)章节期末中国大学慕课答案.docx VIP
- 崇尚科学反邪教小学手抄报Word模板可编辑可打印J.docx VIP
- 崇尚科学反邪教小学手抄报Word模板可编辑可打印A.docx VIP
- 河道保洁服务应急预案.doc VIP
- 第3单元微项目2 体验表格美化效果-泰山版(2018)第3册八年级信息技术上册教学设计.docx
- 风电项目风机吊装施工工期及施工进度计划方案.pdf VIP
- 第三讲 《易经》与风水(基础二).ppt VIP
- 《关于幼儿动画片观赏偏好的调研分析报告》14000字.doc VIP
- 监控报价 综合方案.doc VIP
- 监控报价清单表-监控报价模板.xlsx VIP
原创力文档


文档评论(0)