lr语法分析实验报告

lr语法分析实验报告

ID:9299161

大小:109.00 KB

页数:11页

时间:2018-04-27

lr语法分析实验报告_第1页
lr语法分析实验报告_第2页
lr语法分析实验报告_第3页
lr语法分析实验报告_第4页
lr语法分析实验报告_第5页
资源描述:

《lr语法分析实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、目录引言..............................................................1第一章概述....................................................21.1设计题目及内容.............................................21.2设计环境...................................................2第二章设计的基本原理............

2、..............................32.1LR分析器的基本理..........................................32.2LR分析器工作过程算法......................................3第三章程序设计................................................53.1总体方案设计..............................................53.2各模块设计...

3、..............................................5第四章程序测试和结论以及心得..................................7参考文献..........................................................7附录程序清单................................................8一概述1.1设计题目及内容设计题目:根据LR分析表构造LR分析器内容:已知文法G:(1)E→E+

4、T(2)E→T(3)T→T*F(4)T→F(5)F→(E)(6)F→ILR分析表:状态ACTION(动作)GOTO(转换)I+*()#ETF0S5S41231S6Acc2R2S7R2R23R4R4R4R44S5S48235R6R6R6R66S5S4937S5S4108S6S119R1S7R1R110R3R3R3R311R5R5R5R5注:sj表示把下一状态j和现行输入符号a移进栈rj表示按第j个产生式进行规约acc表示接受空格表示出错标志,报错根据以上文法和LR分析表,构造LR分析器,并要求输出LR工作过程。1.2设计

5、环境:硬件设备:一台PC机软件设备:Windows2000/XPOS,VC++6.0实现语言:C语言二设计的基本原理2.1基本原理:1.LR方法的基本思想:在规范规约的过程中,一方面记住已移进和规约出的整个符号串,即记住“历史”,另一方面根据所用的产生式推测未来可能碰到的输入符号,即对未来进行“展望”。当一串貌似句柄的符号串呈现于分析栈的顶端时,我们希望能够根据记载的“历史”和“展望”以及“现实”的输入符号等三个方面的材料,来确定栈顶的符号串是否构成相对某一产生式的句柄。2.LR分析器实质上是一个带先进后出存储器(栈)

6、的确定有限状态自动机。3.LR分析器的每一步工作是由栈顶状态和现行输入符号所唯一决定的。4.为清晰说明LR分析器实现原理和模型:LR分析器的核心部分是一张分析表。这张分析表包括两个部分,一是“动作”(ACTION)表,另一是“状态转换”(GOTO)表。他们都是二维数组。ACTION(s,a)规定了当状态s面临输入符号a时应采取什么动作。GOTO(s,X)规定了状态s面对文法符号X(终结符或非终结符)时下一状态是什么。显然,GOTO(s,X)定义了一个以文法符号为字母表的DFA。每一项ACTION(s,a)所规定的动作不

7、外是下述四种可能之一:(1)移进把(s,a)的下一个转态s’=GOTO(s,X)和输入符号a推进栈,下一输入符号变成现行输入符号。(2)规约指用某一产生式A→β进行规约。假若β的长度为r,规约的动作是A,去除栈顶的r个项,使状态Sm-r变成栈顶状态,然后把(Sm-r,A)的下一状态s’=GOTO(Sm-r,A)和文法符号A推进栈。规约动作不改变现行输入符号。执行规约动作意味着β(=Xm-r+1…Xm)已呈现于栈顶而且是一个相对于A的句柄。(3)接受宣布分析成功,停止分析器的工作。(4)报错发现源程序含有错误,调用出错处

8、理程序。2.2LR分析器工作过程算法描述:一个LR分析器的工作过程可看成是栈里的状态序列,已规约串和输入串所构成的三元式的变化过程。分析开始时的初始三元式为(s0,#,a1a2……an#)其中,s0为分析器的初态;#为句子的左括号;a1a2……an为输入串;其后的#为结束符(句子右括号)。分析过程每步的结果可表示为(s0s1……s

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

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

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