- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西北农林科技大学本科教程 编译原理第 9 讲主讲教师:赵建邦 第一页,共三十三页。第四章 语义分析和中间代码生成4.1 语义分析概述4.2 属性文法4.3 几种常见的中间语言4.4 表达式及赋值语句的翻译4.5 控制语句的翻译4.6 数组元素的翻译4.7 过程或函数调用语句的翻译4.8 说明语句的翻译4.9 递归下降语法制导翻译方法简介第二页,共三十三页。第四章《语义分析和中间代码生成》4.1 语义分析概述4.2 属性文法4.3 几种常见的中间语言重点掌握语法翻译制导思想逆波兰表示法三地址代码(四元式、三元式)第三页,共三十三页。本讲目标 4.1 语义分析概述4.1.1 语义分析的内容语义分析包括两部分:1. 静态语义审查(编译阶段) (1)类型检查:检查运算的合法性和运算分量类型的相容性,必要时进行类型转换。 (2)控制流检查:保证控制语句有合法的转向点。 (3)一致性检查。2. 生成目标代码或中间代码 生成中间代码的好处: (1) 使得编译结构在逻辑上更为简单明确 (2) 容易实现目标代码的优化 第四页,共三十三页。4.1 语义分析概述4.1.1 如何实现语义分析?语义分析不像词法分析和语法分析那样,分别可以用正规文法和上下文无关文法形式化地进行描述语义分析的描述工具:属性文法语义分析的实现方式:语法制导翻译 其中,属性文法是语法制导翻译的基础第五页,共三十三页。4.1 语义分析概述4.1.2 语法制导翻译方法(原理)语法制导翻译的方法就是为每个产生式配上一个翻译子程序(称语义动作或语义子程序),并在语法分析的同时执行这些子程序。语义子程序的作用:描述一个产生式所对应的翻译工作。 如:改变变量的值,查、填符号表、发现语义错误、 产生中间代码等。所以,在语法分析过程中,当每一个产生式获得匹配(对应自顶向下推导)或成功规约(对应于自底向上)时,此产生式相应的语义子程序进入工作,最终完成翻译工作。那么,语法制导翻译分为自顶向下和自底向上两种。第六页,共三十三页。4.1 语义分析概述4.1.2 语法制导翻译方法(实例)假定有一个自底向上的LR分析器,原始功能是规约输入串。如:“#7+9*5#”。现在将它的功能加以扩大,使其在规约输入串的同时调用语义子程序计算输入串的语义。 产生式 语义动作(0) ?S→E print val[TOP](1) E→E(1)?+?E(2) val[TOP]= val[TOP] +val[TOP+2](2) E→E(1)*E(2) val[TOP]=val[TOP]* val[TOP+2](3) ?E→(E(1)) val[TOP]=val[TOP+1](4) ?E→i val[TOP]=lexval (注:lexval为i的整型内部值)第七页,共三十三页。注意语义栈的功能:完成语义动作后,保存语义值状态栈、符号栈和语义栈三者同步变化2. 在用某一规则进行归约之后,调用相应语义子程序完成语义动作,将改变的语义值保存在语义栈中图4-1 扩充后的LR分析栈第八页,共三十三页。表4.1 表达式“7?+?9*5#”的语义分析和计值过程 产生式 语义动作(0) ?S→E print val[TOP](1) E→E(1)?+?E(2) val[TOP]= val[TOP] +val[TOP+2](2) E→E(1)*E(2) val[TOP]=val[TOP]* val[TOP+2](3) ?E→(E(1)) val[TOP]=val[TOP+1](4) ?E→i val[TOP]=lexval (注:lexval为i的整型内部值)规约时,先对产生式右部的语义值进行综合,其结果作为左部符号的语义值保存在语义栈中。第九页,共三十三页。4.2 属性文法4.2.1 文法的属性 属性是指与文法符号的类型和值等有关的一些信息,在编译中用属性描述处理对象的特征 对于一棵等待翻译的语法树,它的各个结点都是文法中的一个符号:X,该X可以是终结符或非终结符文法符号X的属性一般包括三种:X.type: X的类型X.place: X的存储位置X.val: X的值第十页,共三十三页。4.2 属性文法4.2.1 文法的属性文法符号的属性按照语法分析方向(推导还是规约)分为两种:继承属性和综合属性 1. 继承属性:用于“自顶向下”传递信息
您可能关注的文档
- 红外光谱和拉曼光.pptx
- 综合实践课作业.pptx
- 网络计划技术与进度.pptx
- 电工电子实训报告写作要求(万用表).pptx
- 社会调查研究方法10统计分析.pptx
- 管理心理学-人性假设(资料).pptx
- 生物制药工艺学说.pptx
- 病毒性心肌炎新进展.pptx
- 电化学基础第三节电解池.pptx
- 线性代数1.6行列式按行(列)展开.pptx
- 2025年软件开发高级工程师面试指南及预测题.docx
- 2025年软件开发初级工程师面试宝典与模拟题.docx
- 2025年软件测试工程师面试宝典及经验.docx
- 2025年软件开发工程师中级面试实战模拟题及答案.docx
- 2025年美容护肤品牌选购指南与产品评测.docx
- 2025年软件工程师面试攻略铁路信息技术应用模拟题答案详解.docx
- 2025-2030中国实时支付行业市场发展趋势与前景展望战略研究报告.docx
- Unit3Period2Grammaractivity(教学设计)英语沪教版2020选择性.docx
- Unit1ANewStartUnderstandingideas课件-高中英语外研版_1.pptx
- Unit3SameorDifferentSectionA1a-1d课件人教版八年级英语上册.pptx
有哪些信誉好的足球投注网站
文档评论(0)