编译原理语法分析器的实现与设计
摘要
编译程序一般由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、目标代码生成程序、代码优化程序、表格管理程序和出错处理程序等成分构成。在编译原理的教学过程中,算法的讲解都需要对算法进行详细的分析,包括算法条件的判断,文法分析表的构造过程,文法分析表的具体生成,针对文法的句子的分析过程等,这些过程往往需要占用大量时间来分析、制表等。本软件的主要任务就是利用程序来完成算法的上述相关过程,以达到高效,直观的效果。本文旨在介绍语法分析方法中的一种自上而下的分析方法——LL(1)分析法。所谓LL(1)分析法是指语法分析是按自左至右的顺序向前查看一个输入字符串,并分析过程中产生句子的最左推导。
关键词:编译;语法分析;LL(1)算法;演示
目录
论文总页数:22页
1引言.1
1.1项目背景.1
1.2目标.1
1.3名词解释.1
1.4算法简介.2
1.4.1自顶向下分析.2
1.4.2递归子程序.3
1.4.3LL(K)分析方法.4
1.4.4LL(1)分析方法.4
1.4.5LL(1)分析表.5
2系统流程图.6
2.1程序流程图.6
2.2系统模块流程图.7
3系统实施.7
3.1文件读取模块.8
3.1.1文件读取使用的CommonDialog控件介绍.8
3.1.2文法左递归的判断.9
3.2算法分析模块.9
3.2.1求select集.9
3.2.2求first集.10
3.2.3求follow集.10
3.3分析表构造模块.12
3.3.1构造文法分析表.12
3.3.2A::=aβ规则.13
3.3.3A::=Dβ规则.13
3.3.4A::=ε规则.13
3.4句子分析模块.13
3.4.1读取句子.14
3.4.2分析句子.14
4特殊问题及解决方法.14
4.1Select集的求解.15
4.1.1问题描述.15
4.1.2解决方案.15
4.1.3解决结果.15
4.2为ListBox添加水平滚动条.15
4.2.1问题描述.15
4.2.2解决方案.15
4.2.3解决结果.16
5结果测试.16
5.1测试正确文法.16
5.2测试错误文法.19
结论.20
参考文献.20
致谢.21
声明.22
〖需要本套毕业设计请联系QQ:1228183806〗