- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理报告L二R分析器
LR分析器目的和要求通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,进一步掌握常用的语法分析方法。1、选择最有代表性的语法分析方法,如LL(1) 语法分析程序、算符优先分析程序和LR分析分析程序,并至少完成两个题目。2、选择对各种常见程序语言都用的语法结构,如赋值语句(尤指表达式)作为分析对象,并且与所选语法分析方法要比较贴切。⑴ 实验前的准备按实验的目的和要求,编写语法分析程序,同时考虑相应的数据结构。⑵ 调试调试例子应包括符合语法规则的算术表达式,以及分析程序能够判别的若干错例。⑶ 输出对于所输入的算术表达式,不论对错,都应有明确的信息告诉外界。⑷ 扩充有余力的同学,可适当扩大分析对象。譬如: 算术表达式中变量名可以是一般标识符,还可含一般常数、数组元素、函数调用等等。 除算术表达式外,还可扩充分析布尔、字符、位等不同类型的各种表达式。③加强语法检查,尽量多和确切地指出各种错误。⑸ 编写上机实习报告。二、背景知识※ 自下而上分析技术-LR(K)方法LR(K)方法是一种自下而上的语法分析方法,是当前最广义的无回溯的“移进- 归约”方法。它根据栈中的符号串和向前查看的k(k30)个输入符号,就能唯一确定分析器的动作是移进还是归约,以及用哪个产生式进行归约。优点:文法适用范围广;识别效率高;查错能力强;可自动构造。逻辑组成:总控程序+LR分析表LR分析器的结构:一个LR分析器实际是一个带先进后出存储器(栈)的确定下推自动机,它由一个输入串、一个下推栈和一个带有分析表的总控程序组成。栈中存放着由“历史”和“展望”材料抽象而来的各种“状态”。任何时候,栈顶的状态都代表了整个的历史和已推测出的展望。为了有助于明确归约手续,我们把已归约出的文法符号串也同时放进栈里。LR分析器的每一动作都由栈顶状态和当前输入符号所唯一确定。 LR分析器模型图分析器的任何一次移动都是根据栈顶状态Sm和当前输入符号ai,去查看ACTION表并执行ACTION( Sm,ai)规定的动作,直至分析成功或失败。LR分析表有两个部分:动作部分ACTION和状态转换部分GOTO。ACTION[S,a]表明当前状态S面临输入符号a时应该采取的动作:1、移入:将S,y的下一个状态S以及当前符号入栈。2、归约:对栈顶的符号串按照某个规则进行归约。3、接受:宣布输入符号串为一个句子。4、报错:宣布输入符号串不是句子。GOTO[S,U]表示当前状态S和非终结符号匹配的时候所转换到的下一个状态。LR总控程序:LR总控程序示意图LR分析器的工作过程是由总控程序根据分析表,使得分析器构型从一种构型向另一种构型变化的过程。初始构型:(S0,a1a2…an $), S0为分析器的初态,$为输入串的括号。分析过程的每步结果可表示为:(S0X1S1…XmSm,aiai+1…an$)。分析器的下一次动作是由栈顶状态Sm和当前输入符号ai所唯一确定的,即:执行ACTION[Sm,ai]规定的动作。经执行各种可能的动作后,分析器的构型可如下变化:1、若ACTION(Sm,ai)=“移进S”,则分析器构型变为(S0X1S1…XmSmaiS,ai+1…an$)。 2、若ACTION(Sm,ai)=“归约A→β ”,则分析器构型变为(S0X1S1…Xm-rSm-rAS,aiai+1…an$),其中S=GOTO(Sm-r,A),|β|=r 。 3、若ACTION(Sm,ai)=“接受”,则分析成功,正常停止。4、若ACTION(Sm,ai)=“ERROR”,语法出错,进行出错处理。LR分析表的构造:LR(0)项目的定义:文法的每一个产生式的右部添加一个圆点(·),则构成文法的一个LR(0)项目。设I是文法G的任一项目集,则定义和构造CLOSURE(I)的规则如下:1、属于I的任何项目也属于CLOSURE(I);2、若A → α·Bβ 属于CLOSURE(I),那么,对于任何关于B的产生式B→γ ,项目B→·γ 也属于CLOSURE(I);3、重复执行以上两步,直到CLOSURE(I)不再增大为止。构成识别一个文法活前缀的DFA的项目集(状态)的全体称为这个文法的LR(0) 项目集规范族。构成过程如下:1、文法拓广;2、构造拓广文法的LR(0)项目集规范族3、由初始项目出发,利用CLOSURE和goto函数;4、将LR(0)项目集规范族中的每个项目集作为FA的状态,将goto函数作为状态转换函数,构造出的FA即为所求。项目集I的闭包CLOSURE(I):设I是文法G的任一项目集,则定义和构造CLOSURE(I)的规则如下:1、属于I的任何项目也属于CLOSURE(I);2、若A → α .Bβ 属于CLOSURE(I),那么,对于任何关于B的产生式B→
您可能关注的文档
最近下载
- COLMO洗衣机工程师资格认证考试题及答案.doc VIP
- 《合理用药与用药安全》课件.ppt VIP
- 配件部经理岗位职责(24篇).docx VIP
- (人教2024版)英语八年级上册Unit 4 大单元教学设计(新教材).docx
- TCECS 179-2023 健康住宅建设技术规程.pdf VIP
- 数字孪生及车间实践第二篇数字孪生研究体系.pptx VIP
- 2025年四川省绵阳市初中学业水平考试语文真题试卷含参考答案与习作例文精品.pdf VIP
- 2024版行政管理培训课件.pptx VIP
- 《公安机关互联网安全监督检查规定》培训与解读课件.pptx VIP
- 数字孪生及车间实践第一篇数字孪生的内涵及研究应用现状.pptx VIP
文档评论(0)