资源描述:
《编译原理:语法分析实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告学院(系)名称:计算机与通信工程学院姓名学号专业计算机科学与技术班级实验项目实验二:语法分析课程名称编译原理课程代码0660116实验时间2011年4月14日第1、2节2011年4月19日第7、8节2011年4月21日第1、2节实验地点计算机软件实验室7-215批改意见成绩教师签字:实验内容:可选择LL1分析法、算符优先分析法、LR分析法之一,实现如下表达式文法的语法分析器:(1)E→E+T
2、E-T
3、T(2)T→T*F
4、T/F
5、F(3)F→P^F
6、P(4)P→(E)
7、i实验目的:1.掌握语法分析的基本概念和基本方法;2.正确理解L
8、L1分析法、算符优先分析法、LR分析法的设计与使用方法。实验要求:1.按要求设计实现能识别上述文法所表示语言的语法分析器,并要求输出全部分析过程;2.要求详细描述所选分析方法针对上述文法的分析表构造过程;3.完成对所设计语法分析器的功能测试,并给出测试数据和实验结果;4.为增加程序可读性,请在程序中进行适当注释说明;5.整理上机步骤,总结经验和体会;6.认真完成并按时提交实验报告。【实验过程记录(源程序、测试用例、测试结果及心得体会等)】实验所给文法为:(1)E→E+T
9、E-T
10、T(2)T→T*F
11、T/F
12、F(3)F→P^F
13、P(4)P→
14、(E)
15、i根据所给文法首先人工计算出FirstVT以及LastVT集合构造FirstVT集合根据规则一:若有产生式P→a…或P→Qa…,则a∈FIRSTVT(P)得:FirstVT(E)={+,-}FirstVT(T)={*,/}FirstVT(F)={^}FirstVT(P)={i,(}根据规则二:若有产生式P→Q…,且a∈FIRSTVT(Q),则a∈FIRSTVT(P)。由F→P^F
16、P且FirstVT(P)={i,(}得:FirstVT(F)={^,i,(}由T→F且FirstVT(F)={^,i,(}得:FirstVT(T)={*
17、,/,^,i,(}由E→T且FirstVT(T)={*,/,^,i,(}得:FirstVT(E)={+,-,*,/,^,i,(}构造LastVT集合根据规则一:若有产生式P→…a或P→…aQ,则a∈LASTVT(P)得:LastVT(E)={+,-}LastVT(T)={*,/}LastVT(F)={^}LastVT(P)={i,)}根据规则二:若有产生式P→…Q,且a∈LASTVT(Q),则a∈LASTVT(P)由F→P^F
18、P且LastVT(P)={i,)}得:LastVT(F)={^,i,)}由T→F且LastVT(F)={^,i,
19、)}得:LastVT(T)={*,/,^,i,)}由E→T且LastVT(T)={*,/,^,i,)}得:LastVT(E)={+,-,*,/,^,i,)}综上:FirstVT(E)={+,-,*,/,^,i,(}LastVT(E)={+,-,*,/,^,i,)}FirstVT(T)={*,/,^,i,(}LastVT(T)={*,/,^,i,)}FirstVT(F)={^,i,(}LastVT(F)={^,i,)}FirstVT(P)={i,(}LastVT(P)={i,)}构造算符优先关系表+-*/^i()#+>><<<<<>>->>
20、<<<<<>>*>>>><<<>>/>>>><<<>>^>>>><<<>>i>>>>>>>(<<<<<<<=)>>>>>>>#<<<<<<<=根据算符优先关系表进行规约输入的字符串为:i^i+i*(i+i)符号栈输入串动作#i^i+i*(i+i)#移入#i