1. 首页
  2. 文档大全

第8章 语法制导翻译和中间代码生成

上传者:2****5 2022-06-29 16:06:01上传 PPT文件 483.50KB
第8章 语法制导翻译和中间代码生成_第1页 第8章 语法制导翻译和中间代码生成_第2页 第8章 语法制导翻译和中间代码生成_第3页

《第8章 语法制导翻译和中间代码生成》由会员分享,可在线阅读,更多相关《第8章 语法制导翻译和中间代码生成(35页珍藏版)》请在文档大全上搜索。

1、语义分析语义分析是指审查语法结构合法的程序是指审查语法结构合法的程序是否真正有意义。即审查源程序有无语义错是否真正有意义。即审查源程序有无语义错误,为代码生成收集信息。误,为代码生成收集信息。 中间代码中间代码,又称中间语言,是复杂性介,又称中间语言,是复杂性介于源程序和机器语言的一种形式。于源程序和机器语言的一种形式。 语法制导翻译语法制导翻译是指在语法分析过程中,是指在语法分析过程中,完成附加在所使用的产生式上的语义规则描完成附加在所使用的产生式上的语义规则描述的动作。述的动作。教学内容:教学内容:教学方式:教学方式:教学目的:教学目的:教学重点:教学重点:教学难点:教学难点:教学时数:教

2、学时数: 语义形式化是个专门的研究课题,有比语义形式化是个专门的研究课题,有比较繁杂的符号系统。现在很多编译程序采用较繁杂的符号系统。现在很多编译程序采用属性文法和语法制导翻译方法对语义处理工属性文法和语法制导翻译方法对语义处理工作进行比较规范和抽象的描述。作进行比较规范和抽象的描述。 一个一个属性文法属性文法包含一个上下文无关文包含一个上下文无关文法和一系列语义规则,这些语义规则附在文法和一系列语义规则,这些语义规则附在文法的每个产生式上。法的每个产生式上。语 义 规 则 L EE E1+TE TT T1 * FT FF (E)F digitPrint(E.val) E.val:=E1.va

3、l+T.val E.val:=T.val T.val:=T1.val F.val T.val:=F.valF.val:=E.valF.val:=digit.lexval产 生 式LE.val=19E.val=15T.val=4T.val=15F.val=4T.val=3F.val=3F.val=5digit.lexval=4digit.lexval=5digit.lexval=3+*3*5+4的带注释的分析树的带注释的分析树生 产 式语 义 规 则D TL T int T real L L1,idL idL.in:=T.typeT.type=integerT.type:=real L1.in:

4、=L.in addtype(id.entry,L.in) addtype(id.entry,L.in)继承属性继承属性L.inAddtype :查、添符号表,在符号表中为变量添加类型信息。In起到类型传递作用。id.entry : id的属性,表项入口。DL.in= realL.in= realL.in= realT.type=realrealid2id1id3.生 产 式语 义 规 则D TL T int T real L L1,idL idL.in:=T.typeT.type=integerT.type:=real L1.in:=L.in addtype(id.entry,L.in) ad

5、dtype(id.entry,L.in),计算方法:自左向右扫描逆波兰式,遇到运算对象则入栈,遇到算符则将相应数目的运算对象出栈计算后结果入栈。复杂性:压栈的可能是地址(如变量赋值),不是值;栈中不一定产生结果。表示自减运算表示自减运算jump表示转到表示转到某个标号某个标号¥表示三目运算表示三目运算subs表示数组下标表示数组下标例:把下述产生式定义的算术表达式映射到后缀波兰表示:把下述产生式定义的算术表达式映射到后缀波兰表示: EE+T E T T TF T F F (E) F a E=ET+ E=T T=TF T=F F=E F=a 产生式 翻译成分=a+*bcbd8.4 一些语句翻译一

6、些语句翻译返回指向id的指针输出四元式生成临时变量E.place:值E的位置id.name:id的属性name(2) EE1+E2 E.place:= newtemp; emit(E.place“:=” E1.place“+”E2.place) (3) E - E1 E.place:=newtemp; emit(E.place“:=”“uminus” E1.place)(4) E( E1) E.place:= E1.place(5) Eid E.place:=newtemp; P:=lookup(id.name); if P nil then E.place:=P else error1213


文档来源:https://www.renrendoc.com/paper/212652084.html

文档标签:

下载地址