- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LR语法分析实验报告
目 录
引言..............................................................1
第一章 概述....................................................2
1.1设计题目及内容.............................................2
1.2设计环境...................................................2
第二章 设计的基本原理..........................................3
2.1 LR分析器的基本理..........................................3
2.2 LR分析器工作过程算法......................................3
第三章 程序设计................................................5
3.1总体方案设计..............................................5
3.2各模块设计.................................................5
第四章 程序测试和结论以及心得................................ ..7
参考文献.......................................................... 7
附录 程序清单................................................8
一 概述
1.1设计题目及内容
设计题目:根据LR分析表构造LR分析器
内容:
已知文法G:
(1)E→E+T
(2) E→T
(3) T→T*F
(4) T→F
(5) F→(E)
(6) F→I
LR分析表:
状态 ACTION(动作) GOTO(转换) I + * ( ) # E T F 0 S5 S4 1 2 3 1 S6 Acc 2 R2 S7 R2 R2 3 R4 R4 R4 R4 4 S5 S4 8 2 3 5 R6 R6 R6 R6 6 S5 S4 9 3 7 S5 S4 10 8 S6 S11 9 R1 S7 R1 R1 10 R3 R3 R3 R3 11 R5 R5 R5 R5 注:sj 表示把下一状态j和现行输入符号a移进栈
rj 表示按第j个产生式进行规约
acc 表示接受
空格表示 出错标志,报错
根据以上文法和LR分析表,构造LR分析器,并要求输出LR工作过程。
1.2设计环境:
硬件设备:一台PC机
软件设备:Windows 2000/XP OS ,VC++6.0
实现语言:C语言
二 设计的基本原理
2.1 基本原理:
1.LR方法的基本思想:
在规范规约的过程中,一方面记住已移进和规约出的整个符号串,即记住“历史”,另一方面根据所用的产生式推测未来可能碰到的输入符号,即对未来进行“展望”。当一串貌似句柄的符号串呈现于分析栈的顶端时,我们希望能够根据记载的“历史”和“展望”以及“现实”的输入符号等三个方面的材料,来确定栈顶的符号串是否构成相对某一产生式的句柄。
2.LR分析器实质上是一个带先进后出存储器(栈)的确定有限状态自动机。
3.LR分析器的每一步工作是由栈顶状态和现行输入符号所唯一决定的。
4.为清晰说明LR分析器实现原理和模型:
LR分析器的核心部分是一张分析表。这张分析表包括两个部分,一是“动作”(ACTION)表,另一是“状态转换”(GOTO)表。他们都是二维数组。ACTION(s,a)规定了当状态s面临输入符号a时应采取什么动作。GOTO(s,X)规定了状态s面对文法符号X(终结符或非终结符)时下一状态是什么。显然,GOTO(s,X)定义了一个以文法符号为字母表的DFA。
每一项ACTION(s,a)所规定的动作不外是下述四种可能之一:
(1)移进 把(s,a)的下一个转态s’ = G
您可能关注的文档
- JBoss Rules入门指南.ppt
- jhf第九课第二框 杜绝不良行为 教学设计.doc
- JAVA程序设计第四章教学课件.ppt
- Jhr分布式文件系统MooseFS.doc
- JP柜安装工艺守则.doc
- Jquery EasyUI使用教程及常见问题解决.doc
- jQueryTreeView的使用介绍及其改进.doc
- JK罗琳在哈佛大学毕业典礼上的演讲:失败的额外收益与想象力的重要性.doc
- Jquery实现回车键Enter切换焦点.doc
- JSP与JavaBean代码实例.doc
- 某某单位2024年党建工作总结及2025年工作计划.doc
- 某某市发改委关于2024年度落实党风廉政建设工作责任制情况的报告.doc
- 某某局2024年全面从严治党和党风廉政建设工作总结.doc
- 某某区财政局2024年法治政府建设总结及2025年工作谋划.doc
- 2024年党管武装工作述职报告2篇.doc
- 2024年度国企党委书记抓基层党建工作述职报告3篇.doc
- 公司党委书记2024年述职述廉报告.docx
- 2024年度乡镇党委领导班子民主生活会(四个带头)对照检查材料.doc
- 市医疗保障局关于2024年法治政府建设工作情况的报告.docx
- 市民政局党组2024年巡察整改工作情况报告.docx
文档评论(0)