编译原理语法分析器实验报告
LL(1)语法分析器实验报告书
目 录
3第一章 概 述
31.1 开发平台
31.2 实验目的
31.3 实验要求
3第二章 语法分析器的实现
32.1 LL(1)语法分析器原理
42.2 求出能推出空的终结符
42.3 FIRST集的确定
42.4 FOLLOW集的确定
42.5 SELECT集的确定
42.6 LL(1)文法的判别
42.7 逻辑结构
52.8 预测分析
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
的生成
52.9 句子的判定
52.10 其他说明
6第三章 系统运行与测试
63.1 程序运行环境
63.2 运行界面
83.3 系统测试
11第四章 总 述
114.1 程序综述
114.2小组
工作总结
关于社区教育工作总结关于年中工作总结关于校园安全工作总结关于校园安全工作总结关于意识形态工作总结
第一章 概 述
1.1 开发平台
本程序基于Microsoft Visual Studio 2008开发,使用C#语言。
1.2 实验目的
掌握LL(1)分析法的基本原理,掌握LL(1)分析表的构造
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
,掌握LL(1)驱动程序的构造方法。
1.3 实验要求
编写一个语法分析器,不限语言,方法。
第二章 语法分析器的实现
2.1 LL(1)语法分析器原理
语法分析是编译过程的核心部分,它的主要任务是按照程序的语法规则,从由词法分析输出的源程序符号串中识别出各类语法成分,同时进行词法检查,为语义分析和代码生成作准备。这里采用自顶向下的LL(1)分析方法。
语法分析程序的
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图如图5-4所示。
2.2 求出能推出空的终结符
见许英俊报告
2.3 FIRST集的确定
见邹杰光报告
2.4 FOLLOW集的确定
见张志峰报告
2.5 SELECT集的确定
见叶凯翔报告
2.6 LL(1)文法的判别
见叶凯翔报告
2.7 逻辑结构
一个LL(1)分析器由一张分析表、一个分析栈和一个总控程序组成。其逻辑结构如图2-1所式。
图2-1 LL(1)分析器的逻辑结构
2.8 预测分析表的生成
见许英俊报告
2.9 句子的判定
当一个文法确定是LL(1)文法时就可以对输入的语句进行判定了。首先要安
装SELLECT集生成LL(1)预测分析表,最简单的方法是使用哈希表来表示,把每一个产生式左部依次和这个产生式SELLECT集中的每一个终结符组成关键字,其值即为这个产生式,送入哈希表。这样在进行句子的分析时就可以很容易判断是否使用某一个产生式来进行规约。在实际分析时设置两个栈,把"#"压入分析栈和剩余栈,把开始符压入分析栈,把输入串从右向左送入剩余栈,然后只要两个栈元素个数同时大于1,那么依次从两个栈中取出两个元素进行比较,假如一样就匹配,假如可以规约就规约,否则就不是该文法的句子。
2.10 其他说明
本程序使用C#编写,有良好的用户界面,在程序当中,Work类是程序工作类,分析与判断都在这里.Form1为图形界面类,有关图形界面的设置在这里.
第三章 系统运行与测试
3.1 程序运行环境
2000或XP系统,安装.NetFrameWork 3.5 以上版本即可运行。
需要调试程序请安装.NetFrameWork SDK 3.5 以上版本或直接安装 Visual Studio 2008以上版本。
3.2 运行界面
程序打开后
点确定规则后
点击分析栏
点分析按钮后
3.3 系统测试
3.31 测试数据一
点击文件菜单,选着打开文件,打开程序目录下yufa1.txt文件,载入测试文法规则:
文法规则(依次为非终结符,终结符,起始符,规则):
SHMA
abde
S
S->aH
H->aMd
H->d
M->Ab
M->$
A->aM
A->e
点击确定规则,程序判断:
判断出该规则是LL(1)文法规则,测试字符串abddbe#
aaaaebbbd#,符合
测试2:见图
第四章 总 述
4.1 程序综述
本程序可以很好的判断LL(1)文法与进行语法分析,拥有良好的界面,可以保存与打开文法,可以保存分析结果。分析过程提示清楚,方便。
4.2小组工作总结
通过这个学期的学习,我们小组对编译原理有了一定的了解,熟悉了语法分析器与词法分析器的制作与使用,了解了更多关于语言的知识.温老师认真负责,督促我们做好小组作业,这极大提高了我们的动手能力.本次语法分析器分工,我负责统筹分工,总控程序,整合程序,编写图形界面,确定数据结构与模块.邹杰光负责FIRST集确定, 张志峰负责FOLLOW集确定,叶凯翔负责select集确定于文法确定,许英俊负责能导出空的非终极符确定和预测分析表的生成。以上。
开始
读入文法
有效?
判断句型
报错
结束
语法分析程序流程图
是LL(1) 文法?
X1
Xn-1
…
X1
a1 a2 a3… ai… an#
#
分析表M
总控程序
第 4 页 共 11 页