中间代码及其翻译

中间代码及其翻译

ID:39153895

大小:1.47 MB

页数:41页

时间:2019-06-25

中间代码及其翻译_第1页
中间代码及其翻译_第2页
中间代码及其翻译_第3页
中间代码及其翻译_第4页
中间代码及其翻译_第5页
资源描述:

《中间代码及其翻译》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章中间代码及其翻译对语法分析后的语法单位要进行语义分析,包括两个阶段:(1)静态语义审查;(2)如果静态语义正确,生成中间代码。中间代码是高级程序语言中,各种语法成分的语义结构表示;它介于源语言和目标语言之间。中间代码设置的目的:(1)便于进行与机器无关的代码优化;(2)使编译程序改变目标机更容易;(3)使编译程序的结构在逻辑上更为简单明确,以中间语言为界面,编译前端和后端的接口更清晰。静态语义审查Ⅰ.作用:验证语法结构合法的程序是否真正有意义Ⅱ.包含的内容:(1)类型检查条件表达式的类型是不是boolean型验证指针地址访问只作用于指针函数必须有正确的参数个数和参数类型…(2)

2、控制流检查break语句是否有转向点…(3)一致性检查在相同作用域中标识符只能说明一次…第6章中间代码及其翻译源语言目标语言两小步一大步中间代码6.1常用的中间代码形式6.2几种语法成分的四元式设计6.3语法制导翻译6.4语法制导翻译器的实现【内容提要】6.1常用的中间代码形式※设有赋值语句:x=a*b+c则:(1)逆波兰式:xab*c+=(2)四元式:(1)(*abt1)(2)(+t1ct2)(3)(=t2_x)(3)三元式:①(*ab)②(+①c)③(=②x)(4)语义树:=x+*cab※简单比较,各有所长:逆波兰式简单;四元式清楚;三元式节省;语义树直观。或(1)t1=a*b(

3、2)t2=t1+c(3)x=t2Ⅰ.表达式的四元式设计6.2几种语法成分的四元式设计设quat(E),res(E)分别为表达式E的四元式和结果变量。(1)方框内的三个定义式,为四元式翻译法则;(2)定义式中的ω为E1ωE2中最后运算的算符!则:【注】其中:ω(运算符),i运算对象(变量或常量)②quat((E))=quat(E)③quat(i)=空,res(i)=iq(ωres(E1)res(E2)ti)※基本形式q:(ωo1o2t)①quat(E1ωE2)=quat(E1)quat(E2)算符,对象1,对象2,结果【例6.1】x=E,E=a*(b-c)※设有赋值语句:v=EⅡ.赋值

4、语句的四元式设计则有v=E=>quat(E),q(=res(E)_v)=>quat(a*(b-c)),q(=res(E)_x)=>quat((b-c)),q(*ares(b-c)t),q(=res(E)_x)=>quat(b-c),q(*ares(b-c)t),q(=res(E)_x)q(-bct)q(*ares(b-c)t)q(=res(E)_x)顺序编码(1)(-bct1)(2)(*at1t2)(3)(=t2_x)*∴quat(x=E)∵6.2几种语法成分的四元式设计语句标号为转向语句提供转入语句标识,二者用标号相关联。Ⅲ.转向语句与语句标号的四元式设计则有i:S=>q(lb__

5、i),quat(S)(1)设有转向语句:gotoi则有gotoi=>q(gt__i)【例6.2】gotoi;…i:x=(a+b)/c;则有四元式序列:(1)(gt__i)…(11)(=t2_x)(10)(/t1ct2)(8)(lb__i)(9)(+abt1)(2)设有标号语句:i:S标号后面是语句自行练习一下!6.2几种语法成分的四元式设计Ⅳ.条件语句的四元式设计(1)文法:S->if(E)S1[elseS2](2)语义结构:可选E执行S1执行S2可选falsetrue入口出口(3)四元式结构:quat(E)q1(ifres(E)__)quat(S1)q2(el___)quat(S2

6、)q3(ie___)【注】q1:当res(E)=false则转向S2入口四元式;q2:无条件转向出口四元式;q3:条件语句出口四元式。可选6.2几种语法成分的四元式设计※中间代码设计示例:【例6.3】if(a

7、和四元式序列中的相应部分也不存在了!请看Ⅴ.while循环的四元式设计(1)文法:S->while(E)S(2)语义结构:(3)四元式结构:E执行Sfalsetrue入口出口q2(dores(E)__)quat(S)q3(we___)q1(wh___)quat(E)【注】q1:while语句的入口四元式(提供转向E参照);q2:当res(E)=false转向出口四元式;q3:while尾(兼循环转向E)四元式。q1四元式用作标识quat(E)的入口!6.2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。