- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 语法制导翻译及中间代码生成 §5.1 引言 3. 语法制导翻译:对文法中的每一产生式,都附加一“语义动作”或称“语义子程序”,且在语法分析过程中,每当用一产生式进行推导或归约时,语法分析程序除执行相应的语法分析动作之外,同时调用相应的语义子程序。语法制导翻译模式在一遍扫描中,既完成语法分析任务,又完成语义分析和中间代码生成方面的工作。 4. 与文法符号相关联的语义信息可能有许多种,例如:“类型”、“种属”、“编码”、“地址”或是在符号表中登记项的位置等等,可用X.TYPE、X.CAT、X.VAL等表示其具体的语义值。语义信息的存放:设置语义信息栈对语法分析栈的每项加以扩充,放语义信息字段。 为在语法分析过程中平行地进行语义处理,除了设置语法分析栈外,还设置了语义信息栈,用来存放语义信息。当句柄E+T出现在栈顶时的情况如下图: * * 信 息 表 格 管 理 程 序 词法分析器 语法分析器 语义分析程序 中间代码生成器 代码优化程序 目标代码生成器 错 误 检 查 和 处 理 程 序 源程序 目标程序 1. 目标代码生成 1)语义分析 → 产生机器语言或汇编语言形式的目标代码 2)语义分析 → 翻译为中间代码 → 翻译为目标代码 方法2)便于优化处理,功能分离,结构清晰。 2. 中间代码的生成与语言的语义密切相关,但语义的形式化描述是一个难题。 E-E+T|T T-digit (digit代表0-9中任一数字) 如果我们要计算此表达式的值,可将产生式的语义子程序写成: (对在一个产生式中多次出现的符号进行了编号,以便在语义上区分它们) 产生式 语义子程序 E - E(1)+T {E.VAL:=E(1).VAL+T.VAL} E - T {E.VAL:=T.VAL} T - digit {T.VAL:=digit} T T.VAL + ‘+’ E E.VAL E(1) E(1).VAL …… …… …… …… # # 并行的语法分析栈和语义信息栈 E-E+T|T T-digit (digit代表0-9中任一数字) 如果我们要计算此表达式的值,可将产生式的语义子程序写成: (对在一个产生式中多次出现的符号进行了编号,以便在语义上区分它们) 产生式 语义子程序 E - E(1)+T {E.VAL:=E(1).VAL+T.VAL} E - T {E.VAL:=T.VAL} T - digit {T.VAL:=digit} 5. 语法制导翻译不依赖于实现语法分析的具体方法。 6. 属性文法:一种附带有语义属性的前后文无关文法。 语义属性(属性):一个文法符号的语义信息。 语义子程序(语义动作):根据每个产生式所蕴涵的语义,为其配 备若干语句或子程序。 综合属性和继承属性: $$表示产生式左部符号的属性。 $1,$2,…,$n分别表示产生式右部第1,2,…,n个符号的属性。 翻译文法: 波兰翻译文法: L-属性翻译文法: S-属性(波兰)翻译文法: §5.3 几种常见的中间语言 1. 逆波兰式表示——后缀表示 特点:(1)后缀表示中的运算对象与中缀表示中出现的顺序相同 (2)运算符按实际计算的顺序从左到右排序,且每一运算符总是紧跟在它的运算对象之后,无须括号 (3)后缀表示的计值易于在计算机上实现 例:形如 X:=A-B/(C+D)的赋值语句,可按后缀时表示成XABCD+ / - := 遵从将运算符直接置于其运算对象之后的原则,不难把后缀表示推广到程序设计语言中的其他语法结构 如果将后缀式中各符号依次存入一个一维数组Post[n],对控制语句 引入一
您可能关注的文档
最近下载
- 电烙铁作业指导书.docx VIP
- 2026山东颐养健康集团物业(集团)有限公司毕业生校园招聘12人笔试模拟试题及答案解析.docx VIP
- 安徽省县中联盟2025-2026学年高三上学期摸底大联考 语文试卷(含答案详解).pdf
- 2025年广西(统招专升本)高等数学考试试题及答案.docx VIP
- 四年级上册道法第一单元练习卷.docx VIP
- 2026山东颐养健康集团物业(集团)有限公司毕业生校园招聘12人笔试备考试题及答案解析.docx VIP
- 服务礼仪(综合测试卷 )练习测试题附答案.doc VIP
- 时间管理与高效工作.ppt VIP
- 干细胞治疗课件.ppt VIP
- 河北大学传感器考点.docx VIP
原创力文档


文档评论(0)