欢迎来到天天文库
浏览记录
ID:32699470
大小:82.87 KB
页数:9页
时间:2019-02-14
《编译原理课程设计--算术表达式的lr分析过程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、武汉理工大学华夏学院编译原理课程设计武汉理工人学华夏学院课程设计课程名称编译方法》课程设计题目算术表达式的LR分析过程级1071班专业计算机应用班蒋梦琴成绩学号10210407107姓名指导教师2009年6月29日目录课程设计任务书44-43・1设计原则3.2设计的题目3.3在程序中表示文法3.3.1文法的输入与读取3.3.2文法的拓展3.3.3文法的保存格式3.3.4SLR(1)文法的定义3・3.5SLR(l)_Action表的构造…3・3.6SLR(l)_GoTo表的构造…一3.3・7程序算法的设计134.1测试结果14141545J-5-5-5设设计计313设的求容B■说
2、要内设试调机上42会献底体得文封、D丿计5考课程设计任务书设计题目:算术表达式的LR分析过程设计目的1.2.3.4.巩固和加深课堂所学知识;学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;掌握高级语言词法分析、语义分析、语法分析方法;运用高级语言编写质量高、风格好的应用程序。设计任务(在规定的时间系统分析、总体设计,实施计划、撰写报告演示、验收具体要求1天3天1天1.明确课程设计的冃的和重要性,认真领会课程设计的题冃,读懂课程设计指导书的耍求,学会设计的基本方法与步骤,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法。严格要求自己,要独立思考,按时、独立完成课程
3、设计任务。2.设计报告:要求层次清楚、整洁规范、不得相互抄袭,凡正文导教师签名:教研室主任(或责任教师)签名:2009年6月28日2009年6月28日算术表达式的LR分析过程1•设计目的课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,设计题屮的问题比平时的练习题要复杂,也更接近实际。编译原理这门课程安排的课程设计的目的是旨在耍求学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学现举实型变量说明文法为例:<实型变量说明>-标识符表〉V标识符表>—>V标识符表〉,iV标识符表〉->i3.2设计的题目算术表达式的文法:-T
4、
5、T(E)・4・设计算术表达式文法,用SLR(1)分析法实现对算术表达式的分析,给岀一个具体句子的分析过程。3.3在程序中表示文法3.3.1文法的输入和读取为了程序读取的方便,非/终结符相互间以空格分开。这里应该输入:-T
6、T(E)3.3.2文法的拓展为了在LR分析时能够指示分析器正确停止并接受输入,一般在所有输入文法前加上一个新的产牛式,以上面文法为例,我们要保存的文法应该是如此:E'—F(E)3.3.3文法的保存格式设计一个类Grammar来对文法进行各种处理。每一个项是一个2元组,记录了终结符,和产生式右部。其中非终结符可以用字符串(string)类型表示,产生式右部可用字
7、符串数组(vector<string>)表示。而在保存的同时又可记录下文法的所有非终结符(因为文法的产生式左部会出现所有的非终结符),然后再对已经记录的文法的产生式右部再扫描一遍,记录下所有的终结符。在木程序中,我虽然记录了原始的符号串,但是在具体过程处理时使用的是符号串对应的下标来进行的,因此再对原始形式的文法再扫描一遍,生成对应的以下标形式保存的文法。同时我对终结符号和非终结符号的保存位于不同的数组中,于是下标就会产生冲突,我采用方式是建立一个下标数据结构Index来保存下标:structIndex{intindex;〃[非终结符或者终结符的下标]booltem
8、inal;//[为真表示该下标保存的是终结符]boolis_nonteminal();〃[返回!terminal]}3.3.4SLR(1)文法的定义-5-(1)若状态s包含了格式A->a.Xb的任意项目,其中X是一个终结符,且X是输入串中的下一个记号,则动作将当前的输入记号移进到栈中,口被压入到栈中的新状态是包含了项目A—aX.b的状态。(2)若状态s包含了完整项目A->g„则输入串中的下一个记号是在Follow(A)中,所以动作是用规则A->g归约。用规则S¢->S归约与接受等价,其中s是开始状态;只有当下一个输入记号是$时,这才会发生。在所有的其他情况中,
9、新状态都是如下计算的:删除串a和所有它的来自分析栈中的对应状态。相对应地,DFA回到a开始构造的状态。通过构造,这个状态必须包括格式B-g.Ab的一个项目。将A压入到栈中,并将包含了项目B->aA.b的状态压入。(3)若下一个输入记号都不是上面两种情况所提到的,则声明一个错误。若上述的SLR(l)分析规则并不导致二义性,则文法为SLR(l)文法(SLR(l)grammar)oSLR(1)文法的投影函数1定义如下::UUQf存在且则称相应文如果LRSM0中的每个状态S,对任意,使得法为SLR(
此文档下载收益归作者所有