7编译原理第章
*;第七章 语义分析和中间代码的产生;翻译为中间语言的好处;主要内容;7.1中间语言 ;7.1.1 后缀式;后缀式的优点;后缀式特点:
无括号
运算对象的顺序与中缀式一致
根据操作符(运算符)的优先级和结合性进行相关的处理
例: 5+4*6
5 4 6 *+;;7.1.2 图表示法;5+4*6的DAG图;后缀式与抽象语法树的关系;抽象语法树的存储表示;7.1.3 三地址代码;2.三地址语句的种类
作为中间语言的三地址语句非常类似于汇编代码,它可以有符号标号和各种控制流语句。常用的三地址语句有以下几种:
(1) ?x=y op z形式的赋值语句,其中op为二目的算术运算符或逻辑运算符。
(2) ?x=op y形式的赋值语句,其中op为一目运算符,如一目减uminus、逻辑否定not、移位运算符以及将定点数转换成浮点数的类型转换符。;(3) ?x=y形式的赋值语句,将y的值赋给x。
(4) 无条件转移语句goto L,即下一个将被执行的语句是标号为L的语句。
(5) 条件转移语句if x rop y goto L,其中rop为关系运算符,如、=、==、!=、、=等。若x和y满足关系rop就转去执行标号为L的语句,否则继续按顺序执行本语句的下一条语句。
;(6) 过程调用语句par X和call P,n。源程序中的过程调用语句P(X1、X2、…,Xn)可用下列三地址代码表示:
par X1
par X2
par Xn
call P,n
其中,整数n为实参个数。
过程返回语句为return y,其中y为过程返回值。; (7) 变址赋值语句x=y[i],其中x、y、i均代表数据对象,表示把从地址y开始的第i个地址单元中的值赋给x。x[i]=y则表示把y的值赋给从地址x开始的第i个地址单元。
(8) 地址和指针赋值语句
① x=y表示将y的地址赋给x,y可以是一个名字或一个临时变量,而x是指针名或临时变量;
② x=*y表示将y所指示的地址单元中的内容(值)赋给x,y是一个指针或临时变量;
③ *x=y表示指将x所指对象的值置为y的值。;三地址码示例;三地址码示例(2); 3.三地址代码的具体实现
三地址代码是中间代码的一种抽象形式。在编译程序中,三地址代码语言的具体实现通常有三种表示方法:四元式、三元式和间接三元式。
1) 四元式
四元式是具有四个域的记录结构,这四个域为
(op,arg1,arg2,result)
其中,op为运算符;arg1、arg2及result为指针,它们可指向有关名字在符号表中的登记项或一临时变量(也可空缺)。;常用的三地址语句与相应的四元式对应如下:
x=y op z 对应(op, y, z, x)
x=?y 对应(uminus, y, _, x)
x=y 对应(=, y, _, x)
par x1 对应(par, x1, _, _)
call P 对应(call, _, _, P)
goto L 对应(j, _, _, L)
if x rop y goto L 对应(jrop, x, y, L);例如,赋值语句a=b*(c+d)相应的四元式代码为:
① (+,c,d,t1)
② (*,b,t1,t2)
③ (=,t2,_,a)
我们约定:凡只需一个运算量的算符一律使用arg1。
此外,注意这样一个规则:如果op是一个算术或逻辑运算符,则result总是一个新引进的临时变量,它用来存放运算结果。
由上例也可看出,四元式出现的顺序与表达式计值的顺序是一致的,四元式之间的联系是通过临时变量实现的。四元式由于其表示更接近程序设计的习惯而成为一种普遍采用的中间代码形式。;三地址代码的具体表示;解答:逆波兰式为:ab≤a0>∧b0<∨
写出等价的四元式表示
1. (≤
您可能关注的文档
- 5第五章 证投资的基本分析(经济分析)-杨虎锋.ppt
- 600MW+组锅炉高温受热面氧化皮剥落原因分析及防治措施.pdf
- 6.几种离散变量的分布及其应用.ppt
- 6.1 PP原理与配置.pdf
- 6.无机聚合混凝土路面板不同龄期抗压性能试验研究_范小春.pdf
- 5无序分类资的统计分析.pdf
- 620813306基础工程.doc
- 660MW超临界机组汽轮机轮机组轴系安装工艺控制研究.pdf
- 6 工作台椅手握工具设计2.ppt
- 6CTP版材制作技术.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 北师大版三年级下册数学全册教学设计(配2026年春改版教材).docx
- (2026年)跌倒坠床护理综合指南PPT课件.pptx VIP
- 工程设计应急响应方案(3篇).docx VIP
- 征信简版电子版PDF个人信用报告最新版2024年可编辑带水印模板.pdf VIP
- ntvf调试资料解读.doc VIP
- 电影《色.戒》的叙事伦理.doc VIP
- 上海大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 佳能EOS1500D基本使用说明书说明书.pdf VIP
- 上海大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 渣打银行(香港)有限公司.PDF VIP
原创力文档

文档评论(0)