最新【考研计算机专业课】天津大学 编译原理讲义 控制语句的翻译5.4(共24张PPT课件).pptx
《最新【考研计算机专业课】天津大学 编译原理讲义 控制语句的翻译5.4(共24张PPT课件).pptx》由会员分享,可在线阅读,更多相关《最新【考研计算机专业课】天津大学 编译原理讲义 控制语句的翻译5.4(共24张PPT课件).pptx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、5.4.2 IF句与句与WHILE语句的翻译语句的翻译 (1) S if E then S(1) (2) | |if E then S(1) else S(2)(3) | |while E do S(1)(4) | |begin L end(5) | |A(6) L L(1); S(7) | |S 5.4控制语句控制语句(yj)的翻译的翻译第一页,共二十四页。考虑考虑(kol)(kol)语句语句: : if E then S1 else S2 (1) 非终结符非终结符E具有两项语义值具有两项语义值E.TC和和 E.FC,它们分别指出了尚需回,它们分别指出了尚需回填真、假出口的四元式串。填真、假
2、出口的四元式串。 E的的真真出口要扫描到出口要扫描到then才能才能(cinng)(cinng)知道,而知道,而假假出口要扫描出口要扫描到到else才能明确。为了能及时回填这些出口信息,须改写文法。才能明确。为了能及时回填这些出口信息,须改写文法。 S C S | |TP S C if E then TP C S else S if E then S(1) | |if E then S(1) else S(2)第二页,共二十四页。if E then S1 else S2(2) C if E then,当产生式进行规约时,当产生式进行规约时,E的的真真出口可以回填,出口可以回填,而而假假出口需要
3、继续等待,因此出口需要继续等待,因此(ync)要被传递下去。需要文法符号要被传递下去。需要文法符号C记录此信息。记录此信息。 对文法符号对文法符号C定义语义值定义语义值C.CHAIN,指向一条翻译完,指向一条翻译完C后需后需要进行转移目标回填要进行转移目标回填(hutin)的四元式链。的四元式链。 C.CHAIN = E.FC 可以对其它可以对其它(qt)文法符号文法符号 S、TP 同样定义语义值同样定义语义值S.CHAIN、TP.CHAIN。第三页,共二十四页。考虑考虑(kol)(kol)语句语句: : while E do S E 的代码的代码 S 的代码的代码真真出出口口假假出出口口第四
4、页,共二十四页。while E do S(1) S 代码执行之后应产生一条转向测试代码执行之后应产生一条转向测试 E 的无条件转移指令,因的无条件转移指令,因此在看到此在看到 while 时必须记住时必须记住(j zh) E 开始四元式的位置。开始四元式的位置。S Wd SWd W E doW whileS while E do S(1) E 的的真真出口要扫描到出口要扫描到 do 时才能知道。为了能及时时才能知道。为了能及时(jsh)(jsh)回回填这些信息,须改写文法。填这些信息,须改写文法。第五页,共二十四页。while E do S(2) W while 当产生式进行规约时,需要记录四
5、元当产生式进行规约时,需要记录四元(s yun)式位式位置置。引入语义值。引入语义值W.QUAD,记录,记录 while 语句所对应的第一个四语句所对应的第一个四元式的地址。元式的地址。 Wd W E do 当产生式进行规约时,当产生式进行规约时,E假假出口需要出口需要(xyo)继续继续等待,因此要被传递下去。也需要等待,因此要被传递下去。也需要(xyo)文法符号文法符号C的语义值的语义值C.CHAIN记录此信息。记录此信息。第六页,共二十四页。最终最终(zu zhn)(zu zhn)文法改写为文法改写为: : (1) S C S(2) | |TP S(3) | |Wd S(4) | |beg
6、in L end(5) | |A(6) L LS S (7) | |S(8) C if E then(9) TP C S else(10)Wd W E do(11)W while(12)LS L; 第七页,共二十四页。文法的各个产生文法的各个产生(chnshng)(chnshng)式相应的语义动作式相应的语义动作 :(1) S C S(1) S.CHAIN = MERG( C.CHAIN , S(1).CHAIN ) (2) S TP S(2) S.CHAIN = MERG( TP.CHAIN , S(2).CHAIN ) (8) C if E then BACKPATCH ( E.TC ,
7、NXQ ) ; C.CHAIN = E.FC (9) TP C S(1) else q = NXQ;GEN ( j , 0 ) ; BACKPATCH ( C.CHAIN , NXQ ) ; TP.CHAIN = MERG ( S(1).CHAIN , q ) 第八页,共二十四页。(10) Wd W E do BACKPATCH ( E.TC , NXQ ) ; Wd.CHAIN =E.FC ; Wd.QUAD = W.QUAD (11) W while W.QUAD = NXQ (3) S Wd S(1) BACKPATCH ( S(1).CHAIN , Wd.QUAD ); GEN ( j
8、 , , Wd.QUAD ); S.CHAIN =Wd.CHAIN 第九页,共二十四页。(4) S begin L end S.CHAIN = L.CHAIN (5) S A S.CHAIN = 0 /* 空链空链 */ (6) L LS S(1) L.CHAIN = S(1).CHAIN (7) L S L.CHAIN = S.CHAIN (12) LS L; BACKPATCH ( L.CHAIN , NXQ ) 第十页,共二十四页。例例,有语句有语句: : while ( A B ) do if ( C D ) then x := y+z ;读入读入while,规约,规约(guyu)为为
9、W, W.QUAD = 100,NXQ = 100 读入读入( A B ),规约,规约(guyu)为为E, 100 ( j , A , B , 0 ),真真,NXQ = 101 101 ( j , , , 0 ),假假,NXQ = 102 读入读入do, 规约规约(guyu)为为Wd, 对对E.TC回填,回填,100 ( j , A , B ,102 ) Wd.CHAIN = E.FC = 101 Wd.QUAD = W.QUAD = 100 第十一页,共二十四页。读入读入then,规约,规约(guyu)为为C, 对对E.TC回填,回填,102 ( j , C , D , 104) C.CHA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研计算机专业课 最新【考研计算机专业课】天津大学 编译原理讲义 控制语句的翻译5.4共24张PPT课件 最新 考研 计算机 专业课 天津大学 编译 原理 讲义 控制 语句 翻译 5.4 24 PPT
链接地址:https://www.taowenge.com/p-24760557.html
限制150内