编译原理课程设计lr分析法

编译原理课程设计lr分析法

ID:12123018

大小:1.60 MB

页数:14页

时间:2018-07-15

编译原理课程设计lr分析法_第1页
编译原理课程设计lr分析法_第2页
编译原理课程设计lr分析法_第3页
编译原理课程设计lr分析法_第4页
编译原理课程设计lr分析法_第5页
资源描述:

《编译原理课程设计lr分析法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程设计说明书课程名称:_编译原理课程设计_题目:LR(1)分析法院系:_专业班级:学号:__学生姓名:___指导教师:___2012年6月22日13安徽理工大学课程设计(论文)任务书院系教研室学号学生姓名专业(班级)信计09-1设计题目LR(1)分析法设计技术参数Windowsxp操作系统VC++6.0设计要求1.掌握LR(1)分析法的基本原理2.掌握LR(1)分析表的构造方法3.掌握LR(1)驱动程序的构造方法工作量3kb的程序代码13页的课程设计说明书工作计划2012.6.14---2012.6.16需求分析2012.6.16---2112.6.18编写代码2012.6.1

2、9---2012.6.20调试运行参考资料[1]张素琴.吕映芝等.《编译原理》[M.]清华大学出版.2004年[2]王宏.李玉东.李罡.《VisualC++实战演练》[M.]人民邮电出版.2003年3月[3]胡元义等.《编译原理实践教程》[M.]西安电子科技大学出版社.2005年7月[4]胡伦骏.《编译原理》.[M.]电子工业出版社,2002[5]高仲仪.《编译原理及编译程序构造>.[M.]北京航空航天大学出版社.1990指导教师签字教研室主任签字2012年6月22日13学生姓名:学号:专业班级:课程设计题目:LR(1)分析法指导教师评语:成绩:指导教师:年月日安徽理工大学课程设

3、计(论文)成绩13LR(1)分析法一、系统简介及需求分析1.1设计目的及要求(1)掌握LR(1)分析法的基本原理;(2)掌握LR(1)分析表的构造方法;(3)掌握LR(1)驱动程序的构造方法。(4)构造LR(1)分析程序,利用它进行语法分析,判断给出的符号串是否为该文法识别的句子.1.2实验内容根据某一文法编制调试LR(1)分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对LR(1)分析法的理解。对下列文法,用LR(1)分析法对任意输入的符号串进行分析:(0)E->S(1)S->BB(2)B->aB(3)B->b程序输入一以#结束的符号串(包括a、b、#),如:

4、abb#。输出过程如下:步骤状态栈符号栈输入串ACTIONGOTO10#abb#S3..................图1-1二、设备与环境2.1硬件设备内存容量2GB硬盘容量320GB硬盘描述7200转,SATA流处理器个数32132.2软件环境操作系统:WINDOWSXP开发平台:C语言开发软件:VC++6.0三、系统分析3.1LR(1)分析法定义LR分析法是一种有效的自底向上的语法分析技术,它能适用于大部分上下文无关文法的分析,一般叫LR(k)分析方法,其中L是指自左(Left)向右扫描输入单词串,R是指分析过程都是构造最右(Right)推导的逆过程(规范归约),括号中的

5、k是指在决定当前分析动作时向前看的符号个数。3.2LR(1)分析方法的主要思想(1)严格地进行最左归约(识别句柄并归约它)。(2)将识别句柄的过程划分为由若干状态控制,每个状态控制识别出句柄的一个符号。(3)分析栈:存放已识别的文法符号和状态,描述的是分析过程中的历史和展望信息;(4)由一个总控程序来控制整个识别过程。3.3LR(1)分析器的工作过程(1)将初始状态S0和输入串的左边界(#)分别进分析栈;(2)根据状态栈栈顶和当前输入符号查动作表进行如下工作;移进:若动作表中对应“移进”,那么当前输入符号进符号栈,并据状态转换表查得输入符号所对应的新的状态进状态栈,继续扫描,即下

6、一个输入符号变成当前得输入符号;归约:若动作表中对应“归约”,则按指定产生式进行归约,若产生式右部的符号串长度为n,则符号栈栈顶的n个符号为句柄,所以符号栈栈顶n个符号出栈,同时,状态栈顶的n个元素也出栈,归约后的文法符号(非终结符)进符号栈,并据状态转换表查归约后的文法符号所对应的新状态进状态栈;接受:若动作表中对应“acc”,则分析成功;出错:若动作表中对应空白,则报告错误信息。(3)重复以上(2)的工作直到接受或出错为止。3.4LR(1)的优点(1)LR13分析器能够构造来识别所有能用上下文无关文法写的程序设计语言的结构。(2)LR分析方法是已知的最一般的无回溯移进-归约方

7、法,它能够和其他移进-归约方法一样有效地实现。(3)LR方法能分析的文法类是预测分析法能分析的文法类的真超集。(4)LR分析器能及时察觉语法错误,快到自左向右扫描输入的最大可能。为了使一个文法是LR的,只要保证当句柄出现在栈顶时,自左向右扫描的移进-归约分析器能够及时识别它便足够了。当句柄出现在栈顶时,LR分析器必须要扫描整个栈就可以知道这一点,因为,如果这个识别句柄的有限自动机自底向上读栈中的文法符号的话,它达到的状态正是这时栈顶的状态符号所表示的状态,所以,LR分析器可以从栈

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。