- 65
- 0
- 约1.86万字
- 约 87页
- 2018-04-13 发布于湖北
- 举报
编译原理 第5章 语法制导翻译技术和中间代码生成
● example ● example ● example ● example ● example 属性计算方法 ● example ● example ◆ 属性计算算法设计 ◆ 属性计算算法设计 综合和继承属性 ● 属性的分类 ◆ 综合属性值的计算 ● 继承属性 ◆ 继承属性值的计算 4.三地址码 ● example ● 实现三地址码的数据结构 5.5自下而上语法制导翻译 ● 控制语句中IF语句的翻译 ● 控制语句中布尔表达式的翻译 ● While 语句中间代码的生成 例:赋值语句a=b*(c+d)相应的四元式代码为 (1) (+,c,d,t1) (2) (*,b,t1,t2) (3) (=,t2, ,a) ■ 举例 由上例可看出:如果op是一个算术或逻辑运算符,则总是新引进一个临时变量(上例中的t1,t2等)来存放运算结果。 四元式出现的顺序与表达式计算的顺序一致,四元式之间的联系是通过临时变量实现的。 四元式由于其表示更接近程序设计的习惯而成为一种普遍采用的中间代码形式。 ●表达式中间代码生成 Tn是编译过程中的临时变量,用以存储中间结果。 表达式的四元式变换如下: 例:求a=(b+c)*e+(b+c)/f的四元式 Quadruple四元式 Triple三元式 四元式的一般形式: 运算结果 操作数2 操作数1 操作符 例1 请写出算术表达式 2*a+(b-3) 的四元式表示 例2 请写出语句 x=(x+5)*y-6 的四元式表示 序号 三地址码 四元式 (1) x = y op z (op, y, z, x) (2) x = op y (op, y, , x) (3) x = y (=, y, , x) (4) goto L (j, , , L) (5) if x goto L (jnz, x, , L) (6) if x relop y goto L (jrelop, x, y, L) (7) param x (param, , , x) (8) call n, P (call, n, , P) (9) return y (return, , , y) (10) x = y[i] (=[], y[i], , x) (11) x[i] = y ([]=, y, , x[i]) (12) x = y (=, y, , x) (13) x = *y (=*, y, , x) (14) *x = y (*=, y, , x) 不同类的三地址码的四元式实现 ■三元式、间接三元式、四元式比较 在三元式表示中,每个语句的位置同时有两个作用:一是可作为该三元式的结果被其它三元式引用;二是三元式位置顺序即为运算顺序。 在代码优化阶段,当需要调整三元式的运算顺序时会遇到困难,这是因为三元式中的arg1,arg2也可以是指向某些三元式位置的指针,当这些三元式的位置顺序发生变化时,含有指向这些三元式位置指针的相关三元式也需随之改变指针值。因此,变动一张三元式表是很困难的。 四元式和间接三元式都不存在语句位置同时具有两种功能的现象,代码调整时要做的改动只是局部的。因此,中间代码优化时,四元式与间接三元式都比三元式方便的多。 ■练习 1、四元式之间的联系是通过( )实现的。 2、间接三元式表示法的优点为( ) A. 采用间接码表,便于优化处理 B. 节省存储空间,不便于表的修改 C. 便于优化处理,节省存储空间 D. 节省存储空间,不便于优化处理 3、表达式(~A+B)*(C+D)的逆波兰表示为( ) 4、写出赋值语句x=(a+b)*c/d的四元式序列。 临时变量 A ■练习 写出中缀表达式-a*(b+c)d+e t 的逆波兰表示以及四元式表示。 (一般用@表示一元运算符-,以区分) 一、中间代码有如下形式: ■ 表达式中间代码生成小结 1、逆波兰式 2、三元式 3、间接三元式 4、树形表示 5、四元式 6、三地址代码 二、表达式(b+c)*e/(b-c)+f的中间代码 ●简单赋值语句的(四元式)中间代码生成 四元式形式 : t :=arg1 op arg2 语义属性: id.name, E.place 函数: lookup(id.name) ; 过程: emit(t := arg1 op arg2); t: newtemp; 产生式和语义描
您可能关注的文档
- 细胞毒性讲义.ppt
- 细胞呼吸(课件).ashx.ppt
- 组装部安全教育训练教材.ppt
- 细胞因子药物分析.ppt
- 终端销售——赢在起点“四连环”.ppt
- 经典红歌大家唱(合唱歌曲 呕心沥血整理的).doc
- 经典股权案例赏析(!).pptx
- 经典100题.doc
- 练闯考2017春八年级历史下册第二单元第5课三大改造课件.ppt
- 细部构造--课用.ppt
- 住院医师规范化培训《康复医学》习题(含参考答案)解析.docx
- 2025年5月住院医师规范化培训《耳鼻咽喉科》复习题(含参考答案).docx
- 2025年9月住院医师规范化培训《骨科》试题库(含答案).docx
- 2025年住院医师规范化培训《口腔修复科》模拟考试题+答案.docx
- 8月住院医师规范化培训《外科》测试题(附答案解析).docx
- 2025年6月住院医师规范化培训《预防医学科》练习题(附参考答案).docx
- 2025年7月住院医师规范化培训《放射科》习题(含参考答案).docx
- 2024年住院医师规范化培训《医学影像科》模拟试题(含答案).docx
- 住院医师规范化培训《神经外科》模考试题与参考答案.docx
- 3月住院医师规范化培训《康复医学》测试题+参考答案解析.docx
最近下载
- 柱状图商务总结计划报告统计图表PPT模板.pptx VIP
- 大学英语四级考试高频词汇1500(打印版).docx VIP
- 制作一个小杆秤.pdf VIP
- 2026年中考语文总复习:古诗文默写 第一部分 直接型默写.pdf VIP
- (沪教版2025新教材)七年级英语下册全册词汇总结_可搜索.pdf VIP
- ZP4057旋转式压片机标准清洁操作规程.doc VIP
- 2025至2030年杭州市房地产市场发展现状调研及投资趋势前景分析报告.docx
- 2021-2025年重庆市中考语文试卷高频考点分析及 2026 年备考建议 素材.docx VIP
- PHC管桩水平裂缝成因分析及处置.pdf VIP
- 火力发电厂热力设备和管道保温油漆设计技术规定.docx VIP
原创力文档

文档评论(0)