- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理中LR分析法的教学探讨.doc
编译原理中LR分析法的教学探讨
摘要:LR分析法是编译原理课程的重点和难点之一。本文对LR分析法的教学内容和教学方法进行了简化,避开了部分抽象概念的讲解,以一种较简洁和直观的方式帮助学生理解LR分析法的原理和技术。br 关键词br本文来自:计算机毕业网 :编译原理;移近;规约;符号栈;LR分析法br br 1引言br br 编译原理是高校计算机专业的一门非常重要的核心课程,但由于课程教学内容多,理论抽象,算法复杂,并且涉及到形式语言与自动机、离散数学、数据结构、操作系统等多门先修课程的知识,使得它的难度大大提高,同学普遍反应学习难度太大,虽花了不少时间,但学习效果并不理想。在教学的过程中,如何根据不同层次的学生,适当更新编译原理教学内容和教学方法,帮助学生在有限的时间内更加轻松和深入的掌握复杂的编译知识,从而有效的提高课程教学质量是一个有待解决的研究课题。br 在编译原理的教学内容中,语法分析是教学的重点,而LR分析法又是语法分析中较难掌握的一种分析方法。本文就以LR分析法为例展开探讨,介绍我们在教学过程中使用的方法。实践证明,采用这种教学方法,可以较大的简化LR分析法的教学,在较短的时间内让学生对LR分析的全过程有一个直观而深刻的认识。br br 2LR分析法概述br br LR分析法是一种自下而上的语法分析方法。对输入串进行LR分析的过程,实质上就是逐一将输入串中的符号移入符号栈,从中识别出句柄并在栈顶进行规约的过程。br 要理解和掌握LR分析法,关键是要理解符号栈栈顶和句柄之间的关系,或者句柄在符号栈栈顶的形成过程。如果句柄还未在栈顶形成,就应进行“移近”的动作,以期待在将来形成句柄;如果句柄已经在栈顶形成,就应进行“规约”的动作。为了帮助学生直观的理解这个过程,我们引入了“项目”的概念。一个项目就是在一个产生式的右端加上一个小圆点,这个小圆点将该产生式右端分成了左右两个部分。我们将一个项目的含义理解为:项目表示符号栈对某个句柄的识别程度,小圆点左边的部分已经从输入串中识别出来,并出现在符号栈的栈顶;小圆点右边的部分还没有识别出来,期望从剩余的输入串中对其加以识别。一个文法的产生式数量有限,相应的项目数也有限,如果我们根据每个项目所表示的意义和转换关系进行状态划分和转换,即可构造出一个有限的状态转换关系图,这个状态转换关系图正好可以反映在符号栈的某个状态下分析程序应采取的动作:移近、规约、成功或出错。这正是LR分析表应记录的内容,因此我们可以很容易的将状态转换关系图改写成LR分析表。在利用LR分析表进行LR分析时,对照状态转换关系图,可以更加直观的理解LR分析过程中采取的每一个动作。br 下面先讨论根据项目的含义构造状态转换关系图的方法,然后介绍如何将状态转换关系图改写为LR分析表。br br 3状态转换关系图的构造br br 从项目的定义可以看出,项目虽不能反映出符号栈的全部内容,但它可以反映出符号栈栈顶的状态,而这个状态可用于判断句柄是否已在符号栈栈顶形成。因此在构造状态转换关系图的过程中,我们通过对项目的分析来反映符号栈的状态,以及在该状态下分析程序应采取的动作。br 3.1文法及其项目br 下面以托广后的文法G(S’)为例进行分析。文法G(S’)的规则如下:br (1) S’→Sbr (2) S→BBbr (3) B→aBbr (4) B→bbr 根据各产生式可求得文法G(S’)的所有项目如下:br (1) S’→·S(6) B→·aBbr (2) S’→S·(7) B→a·Bbr (3) S→·BB (8) B→aB·br (4) S→B·B (9) B→·bbr (5) S→BB· (10) B→b·br 3.2符号栈的初始状态br 分析开始前,符号栈为空。在分析的第一步,我们将开始符号#压入栈底,并将这个状态定义为符号栈的初始状态(状态0)。此时的符号栈状态为(为方便书写,这里将符号栈中的符号水平放置在方括号“[ ]”中,栈的生长方向为从左向右)br 状态0:[ # ]br 可见在状态0时,符号栈中只有一个开始符号#,分析程序尚未从输入串中读入任何符号。把项目S’→#8226;S归入与符号栈状态0对应的项目集I0中。此时项目集I0的内容为br I0:{S’→#8226;S}br 项目S’→#8226;S中的#8226;S表示分析程序期望从输入串中识别的下一个符号是S,而S是一个非终结符,不可能直接从输入串中读入。要识别S,必须先从输入串中识别出其它符号,然后在符号栈栈顶进行规约得到。能规约得到S的产生式只有S→BB,因此,要识别S,必须先识别出BB,再将BB规约为S。在文法G(S
您可能关注的文档
最近下载
- 中国飞机座舱透明件行业市场占有率及投资前景预测分析报告.pdf VIP
- 静脉用药安全输注药护专家指引.pptx VIP
- 十年(2015-2024)高考英语语法填空真题与模考试卷汇编16-定语从句a原卷版(含答案).pdf VIP
- AQ 2061-2018 金属非金属地下矿山防治水安全技术规范.docx VIP
- (新)预防艾梅乙母婴传播试卷.docx VIP
- 香丽高速公路第八标段弃土场.docx VIP
- CT扫描技术模拟试题及答案、南方医科大学2006级医学影像技术学试卷.pdf VIP
- 运动生理学(全集)PPT(精品PPT).pptx VIP
- 人工智能基础与应用课件.pptx VIP
- GB 14976-2002 流体输送用不锈钢无缝钢管.pdf VIP
文档评论(0)