编译程序的组织 (17).ppt
《编译程序的组织 (17).ppt》由会员分享,可在线阅读,更多相关《编译程序的组织 (17).ppt(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、6.6 6.6 程序流控制语句翻译程序流控制语句翻译在源程序中,在源程序中,控制语句控制语句控制语句控制语句用于实现程序流程的控制。用于实现程序流程的控制。程序设计理论已证明程序设计理论已证明,任何程序均可由任何程序均可由顺序结构顺序结构、条件条件分枝结构分枝结构和和循环循环三种结构等价地表示。因此三种结构等价地表示。因此,我们先讨我们先讨论这三类结构的翻译。这三类结构可用如下的文法描述:论这三类结构的翻译。这三类结构可用如下的文法描述:1.1.S S ifif E E thenthen S S(1)(1)2.2.|ifif E E thenthen S S(1)(1)elseelse S S
2、(2)(2)3.3.|whilewhile E E dodo S S(1)(1)4.4.|beginbegin L L endend (6.86.8)5.5.|A|A6.6.L LL L;S S7.7.|S|S1有关控制结构文法的注解注注解解1 1:上上述述文文法法中中,非非终终结结符符E、S、L、A分分别别代代 表表 为为 Expr、Statement、Series和和Assignment(即即:布尔表达式、语句、语句串和和赋值语句)。注注解解2 2:由由于于if语语句句可可能能带带来来二二义义性性,我我们们约约定定每每一一个个else总总是是与与其其前前离离它它最最近近的的尚尚未未得得到到
3、匹匹配配的的then相相匹匹配配。同同时时,为为了了区区别别同同一一产产生生式式中中不不同同位置上的位置上的同名文法符号同名文法符号同名文法符号同名文法符号,我们为其增加了,我们为其增加了上标上标。2控制语句的翻译文法控制语句的翻译文法现在,我们讨论文法现在,我们讨论文法6.8(已按前述文法拆分方法进行了改写已按前述文法拆分方法进行了改写)的翻译。)的翻译。1.Conditionif Expr then BackPatch($2.TC,NXQ);BackPatch($2.TC,NXQ);$.Chain=$2.FC$.Chain=$2.FC;当当使使用用此此产产生生式式进进行行归归约约时时,布布
4、尔尔表表达达式式Expr的的四四元元式式序序列列已已经经产产生生,并并且且then后后的的语语句句S的的第第一一四四元元式式序序号号已已能能确定确定(即即NXQNXQ的值的值).).因此因此,可用可用NXQ回填回填Expr的的T T链链;由由于于Expr的的F F链链的的去去向向未未定定,同同时时,因因在在执执行行归归约约动动作作时时Expr将将从从分分析析栈栈中中弹弹出出,所所以以其其F FC C属属性性需需保保留留下下来来,因因此此它它将将作作为为Condition的的一一个个综综合合属属性性ChainChain(整整型型,描描述述某某四四元元式式序序列列链链的的链链首首地地址址(序序号号
5、)传传递递上上去去,待待以以后能确定地址时回填。后能确定地址时回填。3控制语句的翻译文法控制语句的翻译文法(续续1 1)2.Statement Condition Statement$.Chain=Merge($1.Chain,$2.Chain);$.Chain=Merge($1.Chain,$2.Chain);此时,所翻译的是此时,所翻译的是if-then语句结构,原条件语句的布尔语句结构,原条件语句的布尔表达式表达式Expr的的F F链的去向应和链的去向应和then后的语句的出口一致,后的语句的出口一致,而归约所得的语句而归约所得的语句Statement的出口尚未确定(因为该的出口尚未确定
6、(因为该语句可能是更复杂语句结构中的子语句),因此应将这语句可能是更复杂语句结构中的子语句),因此应将这两条链合并成一个大链,待合适的时候回填。两条链合并成一个大链,待合适的时候回填。这里,这里,Statement的属性的属性ChainChain用于描述本语句结构的用于描述本语句结构的所有出口的链首。所有出口的链首。4控制语句的翻译文法控制语句的翻译文法(续续2 2)3.CondStElseCondition Statement else int int q=NXQ;q=NXQ;GEN(j,0,0,0);GEN(j,0,0,0);BackPatch($1.Chain,NXQ);BackPatc
7、h($1.Chain,NXQ);$.Chain=Merge($2.Chain,q);$.Chain=Merge($2.Chain,q);此此时时,编编译译系系统统已已明明确确当当前前正正在在处处理理的的是是if-then-else结结构构,then后后所所跟跟的的S(即即(6.8)式式中中的的S(1)已已经经处处理理完完毕毕,且且else后后所所跟跟的的S(即即(6.8)式式中中的的S(2)第第一四元式的位置已经可以确定。一四元式的位置已经可以确定。在在翻翻译译S(2)之之前前,应应紧紧接接S(1)的的四四元元式式序序列列后后产产生生一一个个无无条条件件转转四四元元式式,并并将将此此四四元元式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译程序的组织 17 编译程序 组织 17
限制150内