




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理实验报告 班 级 _ 学 号 _ 姓 名 _ 指导老师 李 艳 实验一 编译程序的分析与验证一:实验目的 了解编译程序中LR的分析表的作用以及语义加工程序的功能二: 实验要求 对编译程序实例进行分析,通过编译程序的运行,检验编译程序输出结果的正确性。三:实验知识了解关于高级语言的规定即顺序结构,循环结构,选择结构和过程。了解语法分析的构造尤其是LR分析器。通过自行设计一程序进行正确性验证。四:实验内容验证下述程序输出结果的正确性;while (ab) do begin if m=n then a:=a+1 else while k=h do x:=x+2; m:=n+x*(m+y)end#五:实验结果以及分析结果:enter the file name:1a.txt*词法分析结果*3 048 056 042 356 149 05 04 00 056 242 256 31 056 038 056 034 057 12 03 056 4press any key to continue.42 556 55 056 638 056 634 057 28 056 238 056 334 056 636 048 056 234 056 749 06 010 0程序总共7行,产生了43个二元式!*变量名表*0 a1 b2 m3 n4 k5 h6 x7 y*状态栈加工过程及归约顺序*stack0=0 n=3 lr=3stack1=3 n=9 lr=7stack2=7 n=5 lr=11stack3=11 n=4 lr=4stack4=4 n=0 lr=2stack5=2 n=9 lr=6stack6=6 n=1 lr=10stack7=10 n=7 lr=5stack8=5 n=2 lr=104S-a 归约stack7=10 n=11 lr=14stack8=14 n=2 lr=17stack9=17 n=3 lr=3stack10=3 n=9 lr=7stack11=7 n=5 lr=11stack12=11 n=7 lr=5stack13=5 n=8 lr=104S-a 归约stack12=11 n=11 lr=15stack13=15 n=8 lr=102S-while e do s 归约stack9=17 n=11 lr=18stack10=18 n=8 lr=101S-if e then s else s 归约stack4=4 n=11 lr=9stack5=9 n=8 lr=13stack6=13 n=7 lr=5stack7=5 n=6 lr=104S-a 归约stack6=13 n=11 lr=9stack7=9 n=6 lr=105L-S 归约stack6=13 n=12 lr=16stack7=16 n=6 lr=106L-S;L 归约stack4=4 n=12 lr=8stack5=8 n=6 lr=12stack6=12 n=10 lr=103S-begin L end 归约stack3=11 n=11 lr=15stack4=15 n=10 lr=102S-while e do s 归约stack0=0 n=11 lr=1stack1=1 n=10 lr=-2*四元式分析结果*100 j ,a ,b ,102 )101 j , , ,117 )102 j= ,m ,n ,104 )103 j , , ,107 )104 + ,a ,1 ,T1 )105 :+ ,T1 , ,a )106 j , , ,112 )107 j= ,k ,h ,109 )108 j , , ,112 )109 + ,x ,2 ,T2 )110 :+ ,T2 , ,x )111 j , , ,107 )112 + ,m ,y ,T3 )113 * ,x ,T3 ,T4 )114 + ,n ,T4 ,T5 )115 :+ ,T5 , ,m )116 j , , ,100 )程序运行结束!分析:由于在编译程序中的/*算术表达式的LR分析表*/static int action1107= 3,-1,-1,2,-1,-1,1, -1,4,5,-1,-1,ACC,-1, 3,-1,-1,2,-1,-1,6, -1,104,104,-1,104,104,-1, 3,-1,-1,2,-1,-1,7, 3,-1,-1,2,-1,-1,8, -1,4,5,-1,9,-1,-1, -1,101,5,-1,101,101,-1, -1,102,102,-1,102,102,-1, -1,103,103,-1,103,103,-1;是对:所进行的分析因此该编译程序可以将上面的的那个还有+,8,()的C语言正确翻译。6、 实验心得 D.Knuth 在1965年提出了LR(K)文法及LR(K)分析技术。LR分析方法是最普遍的自底向上的分析方法。L代表从左向右扫描单词符号,R代表产生的是最右推导。通过实验,加深了对LR分析方法流程的理解。明白了LR分析表的构造。理解了编译程序中LR的分析表的作用以及语义加工程序的功能。夯实了理论基础。实验二 算术表达式的扩充一、实验目的 掌握LR的分析方法和语义加工程序的扩充二、实验要求参照算术表达式LR分析表的设计方法,设计扩充后的算术表达式LR分析表,并对原语义加工程序进行修改,加入新添加的内容。三 、实验内容设计的程序如下:while (ab) do begin if m=n then a:=a+1 else while k=h do x:=x+2; m:=n/x+x*(m-y)end#在前面已经知道的编译程序中,是不可以识别 / ,还有 号的,因此我们需要构造可以识别 / ,还有 号的算术表达式的LR分析表通过分析表的构造得到分析表为:/*算术表达式的LR分析表*/static int action1149= 3,-1,-1,-1,-1,2,-1,-1,1,-1,4,5,6,7,-1,-1,ACC,-1,3,-1,-1,-1,-1,2,-1,-1,8,-1,106,106,106,106,-1,106,106,-1,3,-1,-1,-1,-1,2,-1,-1,9,3,-1,-1,-1,-1,2,-1,-1,10,3,-1,-1,-1,-1,2,-1,-1,11,3,-1,-1,-1,-1,2,-1,-1,12,-1,4,5,6,7,-1,13,-1,-1,-1,101,101,6,7,-1,101,101,-1,-1,102,102,6,7,-1,102,102,-1,-1,103,103,103,103,-1,103,103,-1,-1,104,104,104,104,-1,104,104,-1,-1,105,105,105,105,-1,105,105,-1;除了修改原不可以识别/ 和的编译程序的LR分析表之外,我们还要在适当的地方增加下列几项#define minus 35 /added#define div 37 /addedcase /: /addedbufcount.sy1=div;count+;break; case -:/addedbufcount.sy1=minus;count+;break;case 102: E.pos=newtemp();/E-E-Egen(-,sstackssp-2,sstackssp,E.pos+100);ssp=ssp-2;sstackssp.sy1=tempsy;sstackssp.pos=E.pos;sp1=sp1-3;break;case 104: E.pos=newtemp();/E-E/Egen(/,sstackssp-2,sstackssp,E.pos+100);ssp=ssp-2;sstackssp.sy1=tempsy;sstackssp.pos=E.pos;sp1=sp1-3;break;等等:等修改完成之后我们使用下面的程序对修改之后的编译程序进行验证*enter the file name:1a.txt*词法分析结果*3 048 056 042 356 149 05 04 00 056 242 256 31 056 038 056 035 057 12 03 056 4press any key to continue.42 556 55 056 638 056 637 057 28 056 238 056 335 056 637 048 056 234 056 749 06 010 0程序总共7行,产生了43个二元式!*变量名表*0 a1 b2 m3 n4 k5 h6 x7 y*状态栈加工过程及归约顺序*stack0=0 n=3 lr=3stack1=3 n=9 lr=7stack2=7 n=5 lr=11stack3=11 n=4 lr=4stack4=4 n=0 lr=2stack5=2 n=9 lr=6stack6=6 n=1 lr=10stack7=10 n=7 lr=5stack8=5 n=2 lr=104S-a 归约stack7=10 n=11 lr=14stack8=14 n=2 lr=17stack9=17 n=3 lr=3stack10=3 n=9 lr=7stack11=7 n=5 lr=11stack12=11 n=7 lr=5stack13=5 n=8 lr=104S-a 归约stack12=11 n=11 lr=15stack13=15 n=8 lr=102S-while e do s 归约stack9=17 n=11 lr=18stack10=18 n=8 lr=101S-if e then s else s 归约stack4=4 n=11 lr=9stack5=9 n=8 lr=13stack6=13 n=7 lr=5stack7=5 n=6 lr=104S-a 归约stack6=13 n=11 lr=9stack7=9 n=6 lr=105L-S 归约stack6=13 n=12 lr=16stack7=16 n=6 lr=106L-S;L 归约stack4=4 n=12 lr=8stack5=8 n=6 lr=12stack6=12 n=10 lr=103S-begin L end 归约stack3=11 n=11 lr=15stack4=15 n=10 lr=102S-while e do s 归约stack0=0 n=11 lr=1stack1=1 n=10 lr=-2*四元式分析结果*100 j ,a ,b ,102 )101 j , , ,117 )102 j= ,m ,n ,104 )103 j , , ,107 )104 - ,a ,1 ,T1 )105 :+ ,T1 , ,a )106 j , , ,112 )107 j= ,k ,h ,109 )108 j , , ,112 )109 / ,x ,2 ,T2 )110 :+ ,T2 , ,x )111 j , , ,107 )112 + ,m ,y ,T3 )11
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 伤口冲洗查房课件
- 郑州市农村管理办法
- 路灯照明巡查管理办法
- 高校交流生管理办法
- 护理团队高效协作与沟通技巧实战指南
- 企业生产安全培训知识课件
- 2025年疼痛科疼痛评估和管理规范考试答案及解析
- 税务责任追究管理办法
- 留学归国落户管理办法
- 2025年4.15全民国家安全教育日知识竞赛题汇编附答案
- 人教版初中全部英语单词表(含音标)
- DL∕T 5461.11-2013 火力发电厂施工图设计文件内容深度规定 第11部分土建结构
- 《MH-T7003-2017民用运输机场安全保卫设施》
- CB-Z-239-1987一般排水量船模双桨自航试验方法
- 平安经营分析岗面试
- 《民航客舱设备操作与管理》课件-项目二 客舱服务设备
- 《心系国防 有你有我》国防教育主题班会课件
- 普通外科临床路径(2019年版)
- WK22040101001PT 经编基本组织与变化组织
- 2022智慧健康养老服务与管理专业人才培养调研报告
- 新编文学理论课件
评论
0/150
提交评论