




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
例1:语法制导翻译下列语句为四元式形式:whilex<ydoifa>bthenx:=x+1elsex:=y法制导翻译生成四元式过程如下:语法制导翻译生成四元栈内容语义规则(生成四元式)栈内容语义规则(生成四元式)输入串#whileM1 x<ydoifa>bthenx:=x+1elsey:=x#M1・quad=100P195产生式(3)#whileM1x<y doifa>bthenx:=x+1elsey:=x##whileM1E1 doifa>bthenx:=x+1elsey:=x#100(j<,x,y,0)E1・f_l=101; 101(j,_#whileM1E1doM2112M2・quad=102P195产生式#whileM1E1doM2ifa>b112#whileMEdoMifE1122102(j>,a,b,0)103(j,_,_,0)
( E1.t_l=1000)ifa>bthenx:=x+1elsey:=x#3)thenx:=x+1elsey:=x#thenx:=x+1elsey:=x#(E2.t_l=102;E2・f_l=103;elsey:=x#elsey:=x#y:=x#y:=x##elsey:=x#elsey:=x#y:=x#y:=x####x:=x+1elsey:=x#咖昨呻進E2thenM3M3・quad=104 P195产生式(3)x:=x+1elsey:=x##whileM1E1doM2ifE2thenM3x:=x+1 elsey:=x#104(+,x,1,T)105(:=,T,_,x)#whileMEdoMifEthenMSTOC\o"1-5"\h\z11 2 2 31S1.nextlist='A'#whileM1E1doM2ifE2thenM3S1N11 2 2 31N・nextlist=106106(j,_,_,0)#whileM1E1doM2ifE2thenM3S1Nelse11 2 2 31P195产生式(2)#whileM1E1doM2ifE2thenM3S1NelseM411 2 2 31 4M4・quad=107 P195产生式(3)#whileM1E1doM2ifE2thenM3S1NelseM4y:=x#whileM1E1doM2ifE2thenM3S1NelseM4S211 2 2 31 42107(:=,x,_,y)S2.nextlist='A'#whileM1E1doM2S311 23P195产生式(1)backpatch(E2・t_l,M3.quad)使102(j>,a,b,104)backpatch(E2.f_l,M4・quad)使103(j,_,_,107)S3.nextlist=(S1.nextlist,N.nextlist,S2.nextlist)使S3.nextlist=106#S
P195产生式(5)backpatch(S3.nextlist,Ml.quad)使106(j,_,_,1。。)backpatch(E1・t_l,M2・quad)使1。。(jv,x,y,W2)S・nextlist:=E1.f_l=101使S・nextlist:=E1.f_l=101使_,_,M1・quad)使D8(j,_,_,W))v,x,y,102),_,_,W9)・)2(v,x,y,102),_,_,W9)・)2(j>,a,b,104)(j,_,_,W7)」(+,x,1,T))3)4)5(:=,T, x))6(j,_,_,ioo)・E2・cod、S1.codeS.codewhilexvydoifa>bthenx:=x+1elsey:=xwhileif]else)7(:=,x,_,y)}S2・code)71)8(j,_,_,W)) ’1L例2:语法制导翻译下列语句为四元式形式:whileavbdoifcv5thenwhilex>ydoz:=x+1elsex:=y解:语法制导翻译生成四元式过程如下:语法制导翻译生成四元式栈内容输入串
栈内容ifc<5else…#M2.quad=102thenwhilex>ydoz:=x+1P195ifc<5else…#M2.quad=102thenwhilex>ydoz:=x+1P195产生式(3)#whileM1E1doM2ifc<5else…#thenwhilex>ydoz:=x+1#whileM1z:=x+1…#a<bdoifc<5thenwhilex>ydoM1・quad=100P195产生式(3)#whileMa<b1doifc<5thenwhilex>ydoz:=x+1else…##whileME11doifc<5thenwhilex>ydoz:=x+1else…#100(j<,a,b,0)( E1.t_l=100 ;E1・f_l=101;101(j,_,_,0)#whileM1E1doM2ifE2 thenwhilex>ydoz:=x+1elsex:=y#102(j<,c,5,0)(E2.t_l=102;E2.f_l=103;)103(j,_,_,0)#whileM1E1doM2ifE2thenM3 whilex>ydoz:=x+1elsex:=y#M3・quad=104 P195产生式(3)#whileM1E1doM2ifE2thenM3whileM4 doz:=x+1elsex:=y#M4・quad=104 P195产生式(3)#whileM1E1doM2ifE2thenM3whileM4x>ydoz:=x+1else
#whileMEdoMifEthenMwhileMEdoz:=x+1else1122343x:=y# (E3・t_l=104;E3・f_l=105;)#whileMEdoMifEthenMwhileMEdoMz:=x+1elseTOC\o"1-5"\h\z11 2 2 3 43 5x:=y# M5・quad=106 P195产生式(3)#whileMEdoMifEthenMwhileMEdoMz:=x+1else11 2 2 3 43 5x:=y# 106(+,x,1,T)107(:=,T,_,z)#whileM1E1doM2ifE2thenM3whileM4E3doM5S1 else11 2 2 3 43 51x:=y# S1.nextlist='A'#whileM1E1doM2ifE2thenM3S2 else11 2 2 32x:=y# 108(j,_,_,104)因M4.quad=104S1.nextlist为空,不需回填。backpatch(E3・t_l,M5・quad)使104(j>,x,y,106)S2.nextlist:=E3.f_l=105#whileM1E1doM2if E2thenM3S2N11 2 2 32elsex:=y# N.nextlist=109109(j,_,_,0)#whileM1E1doM2if E2thenM3S2NelseM511 2 2 32 5x:=y# |M5.quad=110P195产生式(3)#whileM1E1doM2if E2thenM3S2NelseM5x:=y# 110(:=,x,_,y)S3.nextlist='A'#whileM1#whileM1E1doM2if#E2thenM3S2NelseM5S3#whileM1E1doM2S4backpatch(E2・t_l,M3・quad)使102(j<,c,5,104)backpatch(E2.f_l,M5・quad)使103(j,_,_,110)S4.nextlist=(S2.nextlist,N.nextlist,S3.nextlist),使109(j,_,_,105)S4.nextlist=109#S #P195产生式(5)backpatch(S4.nextlist,M1・quad)使 109(j,_,_,100)105(j,亠,100)backpatch(E1・t_l,M2・quad)使 100(j<,a,b,102)S.nextlist:=E1・f_l=101可使 101(j,_,_,112)111(j,_,_,M1・quad)即使111(j,_,_,100)对上述过程形成的结果,按从后往前顺序依次写出各四元式,得翻译结果如下:100(j<,a,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度生猪养殖与农业产业扶贫合作协议
- 二零二五年度制造业工伤责任保险合同
- 2025年度男方道歉夫妻共同生活保证协议
- 2025年度饭店短期劳务合同-客房服务员职业健康与安全协议
- 二零二五年度物业公司员工劳动合同(含社区文化活动)
- 监理技术服务合同
- 绿色数据中心建设运营合同
- 环境影响评估结果展示表
- 股份制企业股权分配与管理制度文书
- 财务与成本控制管理细则
- 2025年山西省太原市卫健委直属单位招聘522人历年高频重点模拟试卷提升(共500题附带答案详解)
- 劳务合同协议书书
- 白城2025年吉林大安市事业单位面向上半年应征入伍高校毕业生招聘5人笔试历年参考题库附带答案详解
- 全球人工智能产业发展现状和趋势
- 2025年内蒙古化工职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 民法典解读之婚姻家庭编
- 2025年菏泽医学专科学校高职单招数学历年(2016-2024)频考点试题含答案解析
- 2025年漯河职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- Unit 2 What time is it?-A Let's spell(课件)-2024-2025学年人教PEP版英语四年级下册
- 2024-2025学年人教版数学六年级下册第二单元百分数(二)(含答案)
- 创新教案:《歌唱二小放牛郎》在2025年音乐教学中的应用
评论
0/150
提交评论