




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
设程序结构定义如下:PSSifEthenSSifEthenSelseSSwhileEdoSSbeginLendSALL;SLS布尔表达式E及赋值语句A定义见书上,为能及时地回填有关四元式串的转移地址,改写文法如下:PSC,ifEthen,SCS1,TpCSelse,STPS2,Wwhile,WdWEdo,SWdS3,SbeginLend,SA,LSL;,LLSS1,自底向上语法制导翻译方案实现过程分析(关于控制结构的翻译),翻译中使用回填-拉链技术翻译while(ad)thenx=y+z,步骤1:移进while,并按如下产生式归约WwhileW.codebegin=nextstat;四元式表内容如下:,nextstat100,W.codebegin,句型变为W(ad)thenx=y+z,步骤2:对于句型W(ad)thenx=y+z移进(ab)并按如下产生式归约Ei1relopi2E.true=nextstat;E.false=nextstat+1;E.codebegin=nextstat;gen(ifad)thenx=y+z移进do并按如下产生式归约WdWEdobackpatch(E.true,nextstat);Wd.chain=E.false;Wd.codebegin=W.codebegin;四元式表内容如下:,100ifad)thenx=y+z,步骤4:对于句型Wdif(cd)thenx=y+z移进if(cd),并按如下产生式归约Ei1relopi2E.true=nextstat;E.false=nextstat+1;E.codebegin=nextstat;gen(ifabgoto_);gen(goto_);E(E1)E.true=E1.true;E.false=E1.false;E.codebegin=E1.codebegin;四元式表内容:,100ifadgoto_,103goto_,104,E.true,E.false,句型变为WdifEthenx=y+z,步骤5:对于句型WdifEthenx=y+z按如下产生式归约CifEthenbackpatch(E.true,nextstat);C.chain=E.false;四元式表内容:,100ifadgoto104,103goto_,104,C.chain,句型变为WdCx=y+z,步骤6:对于句型WdCx=y+z移进x=y+z,按如下产生式归约Bip=lookup();if(pnil)E.place=pelseerrorBB1+B2B.place=newtemp;gen(B.place=B1.place+B2.place;Ai=Bp=lookup();if(pnil)gen(p=E.place)elseerror四元式表内容:,100ifadgoto104,103goto_,104t=y+z,C.chain,句型变为:WdCA,105x=t,106,步骤7:对于句型WdCA,按如下产生式归约SAS.chain=0SCS1S.chain=merge(C.chain,S1.chain);/可能S1ifathenx=1elsex=2;四元式表内容:,100ifadgoto104,103goto_,104t=y+z,S.chain,句型变为:WdS,105x=t,106,步骤8:对于句型WdS,按如下产生式归约SWdS1backpatch(S1.chain,Wd.codebegin);gen(gotoWd.codebegin);S.chain=Wd.chain四元式表内容:,100ifadgoto104,103goto100,104t=y+z,句型变为:S,105x=t,106goto100,107,步骤9:对于句型S,按如下产生式归约(假设忽略说明语句)PSbackpatch(S.chain,nextstat);gen(return/返回主函数四元式表内容:,100ifadgoto104,103goto100,104t=y+z,105x=t,106goto100,107return,108,递归下降语法制导翻译方案中实现控制结构的翻译:翻译思路:布尔表达式求值,并设置标号避免回填,if(E)getlabelgen(JZ,E.place,_,label1)S1getlabelgen(JP,_,_,label2)setlabel(label1:)elseS1setlabel(label2:)whilegetlabelsetlabel(label1:)(E)getlabelgen(JZ,E.place,_,label2)doSgen(JP,_,_,label1)setlabel(label2:),label1,label2,label1,label2,for(E1;getlabelsetlabel(label1:)E2getlabelgetlabelgen(JZ,E2.place,_,label2)gen(JP,_,_,label3);getlabelsetlabel(label4:)E3gen(JP,_,_,label1)setlabel(label3:)Sgen(JP,_,_,label4)setlabel(labe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 襄州七中考试题目及答案
- 数学四上中考试卷及答案
- 专利实质审查检索报告对比文件类型相关试卷及答案
- 糕点配方多目标优化-第1篇-洞察与解读
- LED故障云诊断技术-洞察与解读
- 《内科呼吸系统》考试复习题库(带答案)
- 创新绩效竞争评估-洞察与解读
- 2025年事业单位招聘卫生类医学检验专业知识试卷(真题模拟)
- 2025内蒙古通辽市奈曼旗招募青年见习人员387人考前自测高频考点模拟试题完整答案详解
- 衡阳地理会考试卷及答案
- 我长大以后【经典绘本】
- 内含报酬率的计算与应用
- 工程制图(中国石油大学(华东))知到章节答案智慧树2023年
- 矩阵论知到章节答案智慧树2023年哈尔滨工程大学
- 北京协和医院进修汇报
- 大学英语四级常考同义替换120组
- GB/T 39281-2020气体保护电弧焊用高强钢实心焊丝
- GB/T 33815-2017铁矿石采选企业污水处理技术规范
- GB/T 11060.8-2020天然气含硫化合物的测定第8部分:用紫外荧光光度法测定总硫含量
- 计算方法引论-第十一章
- 设备回访记录表
评论
0/150
提交评论