- 1、本文档共59页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
● 例如: 例:赋值语句a=(c+d)*(c+d)相应的三元式代码为 (1) (+,c,d) (2) (+,c,d) (3) (*,(1),(2)) (3) (=,a,(3)) ■ 三元式举例 三元式出现的先后顺序和表达式各部分的计值顺序是一致的。 在三元式代码表的基础上另设一张表,该表按运算的次序列出相应三元式在表中的位置,这张表称为间接码表。三元式表只记录不同的三元式语句,间接码表表示由这些语句组成的运算次序。 ■间接三元式 例:赋值语句 a=(c+d)*(c+d) 三元式代码为 相应的间接三元式代码由三元式表和间接码表组成: 三元式表:(1) (+,c,d) (2) (*,(1),(1)) (3) (=,a,(2)) 间接码表:(1)(1)(2)(3) (1) (+,c,d) (2) (+,c,d) (3) (*,(1),(2)) (4) (=,a,(3)) ■树形表示 树形表示法可以很方便的表示一个表达式或语句。 其中:一个表达式中的简单变量或常数的树形表示就是该变量或常数自身。 简单表达式的树形表示见课本P109 图5.8 树形结构一般表示成二叉树的形式。 练习:求a=(b+c)*e+(b+c)/f的树形表示? ■ 四元式 四元式是具有四个域的记录结构,这四个域为 (op,arg1,arg2,result) 其中op为运算符, arg1,arg2为运算对象, result为编译程序为存放中间运算结果引进的临时变量。 例:赋值语句a=b*(c+d)相应的四元式代码为 (1) (+,c,d,t1) (2) (*,b,t1,t2) (3) (=,t2, ,a) 四元式出现的顺序与表达式计算的顺序一致,四元式之间的联系是通过临时变量实现的。 ■ 三地址码 三地址码的形式定义为:X=a op b 其中,X,a和b为变量名、常量或编译时产生的临时变量;op为运算符。 注意:三地址语句中等号右边只含有一个运算符,因此多个运算符组成的表达式必须用三地址语句序列来表示,如: x+y*z的三地址码序列为: (1) t1=y*z (2) t2=x+t1 其中t1和t2是编译时产生的临时变量,三地址码是语法树的一种线性表示。 ■ 综合练习 求a=(b+c)*e的各种中间语言表示形式。 1、逆波兰式 2、三元式 3、间接三元式 4、树形表示 5、四元式 6、三地址代码 ■练习 1、四元式之间的联系是通过( )实现的。 2、间接三元式表示法的优点为( ) A. 采用间接码表,便于优化处理 B. 节省存储空间,不便于表的修改 C. 便于优化处理,节省存储空间 D. 节省存储空间,不便于优化处理 临时变量 A 5.5 自下而上语法制导翻译 自下而上语法制导翻译方法是在自下而上的语法分析过程中逐步实现语义规则的方法。 自下而上翻译的特点: (1)当栈顶形成句柄执行归约时,调用相应的语义动作; (2)语法分析栈与语义分析栈同步操作。 ■表达式中间代码生成 (1)逆波兰式的生成 算术表达式的逆波兰式的生成只需对其抽象语法树进行后序遍历即可。 例:求(b+c)*e+(b+c)/f的逆波兰式可利用语法分析结果的抽象语法树获得。 考虑若求a=(b+c)*e+(b+c)/f的逆波兰式? ■表达式中间代码生成 Tn是编译过程中的临时变量,用以存储中间结果。 (2)表达式的四元式变换如下: 例:求a=(b+c)*e+(b+c)/f的四元式 1、表达式(~A+B)*(C+D)的逆波兰表示为( ) 2、写出赋值语句x=(a+b)*c/d的四元式序列。 ■课后练习 *信息学院 孙丽云 第5章 语法制导翻译技术和中间代码生成 5.1 概述 ■ 语义分析的任务 首先编译程序审查每个语法结构的静态语义,如果静态语义正确,再生成中间代码。 词法分析:分析的预备阶段,输出是单词符号序列; 语法分析:分析的主要阶段,输出是语法树。 但这样还不能完全确定源程序的正确性,也没有获得翻译时所需的所有信息。 注意:有的编译程序不生成中间代码而直接生成实际的目标代码。 5.2 属性文法 词法规则的描述工具: 语法规则的描述工具: 语义规则的常用描述工具: 属性文法 正规文法或正规式 上下文无关文法 属性是编程语言结构的任意特性,如: 变量的数据类型 表达式的值 存储器中变量的位置 程序的目标代码 数的有效位数 ■ 基本概念 X.a是与X关联的a的值 (X 是一个文法符号,a 是 X的一个属性)。如:X.type(X的类型)、X.place(X的存储位置)、X.val(X的值) ■ 属性文法 即:以语法分析为基础,对应文法的每个产生式,确定相应的语义规则。 属性文法是在上下文
您可能关注的文档
- ScienceDirectOnline使用指南.ppt
- SCHMID制绒培训讲义.ppt
- SCIE数据库使用方法.ppt
- SciFinderScholar检索系统.ppt
- SCI医学论文写作与发表查重ithenticaten.ppt
- SCI文章的写作要点与案例分析.ppt
- SCI论文中统计学内容的理解与翻译.ppt
- Scopus数据库官方使用指南.ppt
- scut2009jd2机械原理课程设计(修改).ppt
- SDH设备故障定位思路与方法.ppt
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江西省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年安徽省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年福建省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年广东省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河南省高考英语试卷(含答案解析)+听力音频.docx
- 2024年湖北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江苏省高考英语试卷(含答案解析)+听力音频+听力原文.docx
文档评论(0)