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