实 验 报 告
(2015 / 2016 学年 第 二 学期)
课程名称实验名称
编译原理语法分析器的构造2016
实验时间指导单位指导教师
年5月26日
计算机软件教学中心
黄海平
学生姓名学院(系)
班级学号
计算机学院、专 软件学院
业
计算机科学与技术
实 验 报 告
实验名称实验类型
语法分析器的构造验证
实验学时
4
指导教师实验时间
黄海平
2016.5.26
一、实验目的和要求实验目的:
设计、编制、调试一个LL(1)语法分析器,利用语法分析器对符号串的识别,加深对语法分析原理的理解。
实验要求:
1、检测左递归,如果有则进行消除;2、求解FIRST集和FOLLOW集;3、构建LL(1)分析表;
4、构建LL分析程序,对于用户输入的句子,能够利用所构造的分析程序进行分析,并显示出分析过程。
以上实验要求可分两个同学完成。例如构建分析表一个同学完成、构建分析程序并分析符号串另一个同学完成。
二、实验环境(实验设备)
硬件:计算机
软件:Visual C ++6.0
- 2 -
二、实验原理及内容实验内容:
设计并实现一个LL(1)语法分析器,实现对算术文法G[E]:E->E+T|T T->T*F|F F->(E)|i
所定义的符号串进行识别,例如符号串abc+age+80为文法所定义的句子,符号串(abc-80(*s5)不是文法所定义的句子。实验代码:#include
void input_grammer(string *G)//输入文法G,n个非终结符{
}
- 3 -
int i=0;//计数char ch='y';while(ch=='y'){
cin>>G[i++];
cout<<\继续输入?(y/n)\\n\cin>>ch;
相关推荐: