- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
哈工大编译原理6-2.1课件
本节考虑由如下文法生成的布尔表达式:
;优先级:not、and、or
And、or左结合
not右结合;方法二用于翻译控制流语句中的布尔表达式尤其方便。;布尔表达式:a or b and not c
翻译成三地址代码序列:
100 : t1:=not c
101 : t2:=b and t1
102 : t3:=a or t1 ;关系表达式:ab
;emit用于将一个三地址语句输送到文件中;E→E1 or E2 {E.place:=newtemp;
emit(E.place:=E1.placeor E2.place)} ;E→ture {E.place:=newtemp;
④ emit(E.place:= 1)} ;例:布尔表达式 ab and cd and ef对应的语法树;例:布尔表达式 ab and cd and ef可以生成如下的三地址码;四、 控制流语句中的布尔表达式的翻译;三地址表示:
E.true: if a<b goto E.true (真出口)
E.false: goto E.false (假出口) ;布尔表达式:
E and E
E or E、
not E;2、优化代码结构:;;产生式;产生式;If ef goto ltrue
Goto Lfalse;4、用四元式表示中间代码;例:ab的四元式真假出口可以表示为:
(J, a , b , p)
(j , , , q);前面例子产生的三地址码的四元式形式
if ab goto L1
goto Lfalse
L1:if cd goto l2
goto Lfalse
L2:if ef goto Ltrue
goto Lfalse;5、回填 ;对于每一条这样的指令作适当的记录,
;要解决的问题:在一遍扫描中,生成跳转语句时,不知道控制要转向的语句标号; (J,a,b,102)
(j, , ,Lfalse)
(J,c,d,104)
(j, , ,Lfalse)
(J,e,f,L.true)
(j, , ,Lfalse);布尔表达式文法:
(1)E→E1 or M E2
(2) |E1 and M E2
(3) |not E1
(4) |(E1)
(5) |id1 relop id2
(6) |true
(7) |false
(8)M→ε;插入非终结符号M是为了引入一个语义动作,以便在适当的时候获得即将产生的下一个四元式的索引,或说四元式的标号;②.merge(p1,p2):连接由指针p1和p2指向的两个表并且返回一个指向连接后的表的指针。 Merg(p1,p2)=;③.backpatch(p,t):把i作为目标标号回填到p所指向的表中的每一个转移指令中去。此处的“表”都是为“反填”所拉的链.代码如下:;7.使用一遍扫描的布尔表达式的翻译模式;3 E?not E1 { E.truelist:=E1.falselist;
E.falselist:=E1.truelist };6 E ?true {E.truelist:= makelist(nextquad);
emit(′goto—′); };E;语义动作执行顺序:
⑤⑧⑤②⑧⑤②;最终产生的代码序列为:
K (j, a , b , k+2 )
k+1 (j , , , )
K+2 (j, c , d , k+4 )
k+3 (j , , , k+1 )
K+4 (j, e , b , )
k+5 (j , , , k+3 );文法: S→if E then S1
| if E then S1 else S2
| while E do S1 ;E.code;E.code;语法制导定义:;产
您可能关注的文档
最近下载
- 二零二四年度家族企业股权分割与传承协议范本.docx VIP
- 海尔集团岗管理手册.doc VIP
- 中医治疗脊椎病.pdf
- 空调加雪种培训.pptx
- 海尔集团员工关系管理手册.doc VIP
- 一类、二类医疗器械及其零部件、三类医疗器械研发生产新建项目环评可研资料环境影响.docx VIP
- 2024年中国智能手表行业研究报告-智能手表-健康生活的亿万级赛道(摘要版).pdf VIP
- 山东省济宁市2024-2025学年高二上学期期末考试模拟卷语文试题(含答案).docx VIP
- GBT33469-2016耕地质量等级.docx VIP
- 《中等职业学校产品质量监督检验专业人才培养规范》(发布稿).docx VIP
文档评论(0)