- 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;语法制导定义:;产
您可能关注的文档
- 口才演讲01课件.ppt
- Unit 1 Pre-reading and Reading 2课件.ppt
- Twido 可编程控制器产品介绍课件.ppt
- UG加工模板设置与调用课件.ppt
- Unit 1 概述课件.ppt
- Unit 1《The world of our senses》Task课件1 牛津译林版必修3课件.ppt
- 口语能力阐释课件.ppt
- UG机械加工课件.ppt
- Unit 7 Resumes and Application Letters课件.ppt
- Unit 3 translation of commodity names 产品名称翻译课件.ppt
- 浙江杭州市富阳区人民政府银湖街道办事处工作人员1一级主任科员及以下从事街道基层一线工作招1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 浙江温州市鹿城区藤桥镇人民政府一级科员1从事乡镇基层治理等工作。招1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2010-2023历年江苏省南京市溧水区中考一模英语试卷(带解析).docx
- 2024年09月四川省绵阳市人民政府办公室公开考调6名公务员笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年10月广东中山市人民政府石岐街道办事处所属事业单位第二期招考聘用10人笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 贵州2024年11月贵州省兴仁市人民政府薏品田园街道办事处招募6名见习生笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 浅谈教师的教学风格对学生学习的影响.doc
- 物理仿真实验报告.doc
- 2024年10月广东省阳山县人民法院公开招考政府购买服务人员模拟题(一)笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 浙江杭州市富阳区人民政府富春街道办事处工作人员1一级主任科员及以下从事街道基层一线工作招1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
文档评论(0)