资源描述:
《编译原理课程设计--LL(1)文法分析器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、目录引言...............................................................1第一章概述.....................................................41.1设计内容....................................................41.2设计要求...................................................4第二章设计的基本原理...........................................
2、42.1预测分析表的构成原理.......................................42.2预测分析程序的生成.........................................5第三章程序设计.................................................53.1总体方案设计...............................................63.2各模块设计.................................................6第四章程序测试............
3、.....................................7附录程序清单.................................................825课程设计设计题目LL(1)文法分析器学生姓名号学号指导教师专业班级2010年12月25合肥工业大学课程设计任务书设计题目LL(1)文法分析器成绩主要内容预测分析表自动构造程序的实现设计内容及要求:对于任意输入的一个LL(1)文法,构造其预测分析表。要求:首先实现集合FIRST(X)构造算法和集合FOLLOW(A)构造算法,再实现教材P.79给出的预测分析表构造算法。程序显示输出预测分析表或输出到指定文件
4、中。预测分析程序的实现设计内容及要求:对文法G:E→E+T
5、T按教材P.76表4.1构造出G的预测分析程序,T→T*F
6、F程序显示输出如P.78那样的匹配过程。F→(E)
7、i指导教师意见该生能按时完成课程设计任务书所规定的程序设计,综合运用所学知识独立分析和解决问题的能力。程序设计方案。论文论述,文理,格式。程序运行结果。程序验收时回答问题。签名:25第一章概述1.1设计内容:1:预测分析表自动构造程序的实现2:预测分析程序的实现1.2设计要求1:设计内容及要求:对于任意输入的一个LL(1)文法,构造其预测分析表。要求:首先实现集合FIRST(X)构造算法和集合FOLLOW(A)构造算法,再
8、实现教材P.79给出的预测分析表构造算法。程序显示输出预测分析表或输出到指定文件中。2:设计内容及要求:对文法G:E→E+T
9、T按教材P.76表4.1构造出G的预测分析程序,T→T*F
10、F程序显示输出如P.78那样的匹配过程。F→(E)
11、i第二章设计的基本原理2.1预测分析表的构成原理对于任意给定的LL(1)文法G,为了构造它的预测分析表M,我们就必须构造与文法G有关的集合First和fellow.首先我们对每一个X∈VTUVn,构造FIRST(X),办法是,连续使用下面的规则,直至每个集合FIRST不再增大为止.(1)若X∈VT,,则FIRST(X)={X}.(2)若X∈Vn,且有产生式X
12、->a……,则把a加入到FIRST(X)中,若X->ε,也是一条产生式,则把ε也加到FIRST(X)中.(3)若X->Y……是一个产生式且Y∈Vn,则把FIRST(Y)中所有非ε-元素都加到FIRST(X)中,若X->Y1Y2……YK,是一个连续的产生式,Y1Y2……Yi-1都是非终结符,而且,对于任何j,1≤j≤i-1,FIRST(Yj)都含有ε(即Y1Y2……Yi-1=>ε),则把FIRST(Yi)中的所有非ε-元素都加到FIRST(X)中,特别是,若所有的FIRST(Yj)均含有ε,j=1,2,……,k,则把ε加到FIRST(X)中.对于文法G中每个非终结符A构造FOLLOW(A)的办
13、法是,连续使用下面的规则,直到每个FOLLOW不在增大为止.(1)对于文法的开始符号S,置#于FOLLOW(S)中;(2)若A->aBb是一个产生式,则把FIRST(b){ε}加至FOLLOW(B)中;(3)若A->aB是一个产生式,或A->aBb是一个产生式而b=>ε(即ε∈FIRST(b))则把FOLLOW(A)加至FOLLOW(B)中25构造分析表M的算法是:(1)对文法G的每个产生式A->a执行第二