- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自顶而下语法分析(PT)前言对于国内的计算机教材,我一直是有巨大看法的,以至于写了「读优秀的计算机教材」来泄愤(/blog/page/readgoodcsbooks/),当然骂完之后总要做一些什么事儿,不能「听得风就是雨」,于是我把斯坦福大学教授语法分析技术时用的教材《Parsing Techniques》中关于「表驱动的自顶而下语法分析」部分做了中文翻译,它正好对应合肥工业大学同门课程的实验二,提前说明,全文近7000汉字却没有一行代码,按这本书的说法是照顾斯坦福大学人文艺术学院的学生。良好的讲述就是艺术,不是么?当然,我的英语和汉语水平都不是很理想,所以在表意上定会有所折损,如果你对英文更有兴趣,请自行检索《PT》的电子版,这段内容在第九章,如果你发现有所错漏或表意不明之处,希望能帮助修订,感谢。下面,我们开始。查表法首先我们要考虑一个简单的语法格式来限制搜索情况,在这种语法格式内,推导式的右部都由一个终结符开始。在这种语法格式下,预测步骤后面总是紧跟着一个匹配步骤,匹配步骤尝试匹配[下一个输入的标示符]与我们[在预测过程所选中的推导式的右侧的第一个字符],只有在推导式右部是以输入字符开始时匹配才得以成立,而针对其他的右侧推导式将会失败。我们可以利用这一现象去限制我们所作出预测的数量:对于一个以某个终结符开始的推导式右部,只有当其首个字符与输入字符相等时,它才会被考虑加入预测集合。比如,考虑图表8.1中的语法:我们使用广度优先搜索,同时结合刚才的观察进行分析。图(a)表示这个自动机的开始,我们将#作为终结符添加到初始预测和输入字符串的末尾。在`S`的右部中,只有一个是以`a`开头的(`aB`),所以这是唯一匹配的右部。我们选择了S 的第一个aB,故而用 S1 表示,放到左边。图(b)中我们直接匹配a,将a放到左面。图(c)中,下一个输入的符号又是a,在B的右部中,我们发现只有aBB能匹配成功。把B3放到左面,我们得到图(d)。图(d)中,直接匹配a,得到图(e)。图(e)中,我们能观察到下一个输入的字符是b,这一次有两个B的右部能够匹配成功(b,bS),我们就针对两种情况生成两行,得到图(f),同样我们把b都移向左侧,得到(g)。图(g)中,下一个输入的字符是b。匹配第一行,B右部中的b和bS可以满足要求;匹配第二行,S中的bA可以满足要求。把B 和S分别用这三个可以匹配的右部替换并放到左边,得到图(h),匹配b,得到图(i)。图(i)中,我们能发现,只剩下一个我们最初添加的#作为终止符号了,而S和AB不能再匹配成功,因此,下面两行预测走到了死胡同,只给我么留下了唯一的预测,得到图(j)。我们能够再一次提高上述方法的效率,那就是我们为每一对终结符与非终结符符的组合找到能使他们匹配的右部,就像刚才我们所寻找的那样,找到后将他们填入表单中。针对图表8.1中的语法,我们可以制作像图表8.3一样的表格,它被叫做parse table其实怎样构造这样一个表是需要我们着重考虑的。而一旦这样的表格被建立起来,接下来的行动就好办了。我们所创造的这个语法分析器将不再需要上面定义的语法推导式,取而代之的是在每一次预测时,语法分析器用下一个输入的字符和需要匹配的非终结符作为这个表格的两个索引,查找到对应的格子,格子里存着的就是我们需要考虑的推导式的右部。比如,在图表8.2(e)中,句法分析器将会用输入字符b和非终结符B去确定他需要考虑的推导式右部B1和B2.如果对应的格子是空的,我们就发现这个输入是不符合语法的。这还没有结束,前面格子里只有一个右部,而在[A,a]与[B,b]对应的各自内有不止一个元素,所以我们仍需要搜索决定哪一个符合语法。LL(1)语法分析在上一小节里我们举例的从上至下的语法分析器,其中最大的限制是我们要求语法中非终结符的右部都以一个终结符开始。而在这一节中,我们将去掉这个限制条件。你会看到,我们仍然可以建立一个parse table。甚至,是带有ε边的。不带有ε规则的语法分析如果语法不带有ε规则,也就是说没有非终结符可以推导出一个空字符串。换句话说,每一个非终结符最终至少都能导出长度为1的字符串,这对每一个右部来说也成立。由此来说,由终结符开始的字符串就是我们所关注的对象。对于任意一个右部,一旦我们知道了它最后推导出来的字符串由哪一个字符开始,我们就能像上面那样构造一个parse table。所以,我们需要计算出每一个右部对应的字符串的首个终止字符的集合。FIRST1 集合这些由终止符构成的集合被我们叫做”FIRST1 集合”:假设我们拥有一个非空左部x,那么FIRST1 (x)就是指x在一步或多步(0)内能推导出来的字符串的首个终止字符的集合。这个下标1 指的是这个集合只包含一个字符的终止符。其实还FIRSTk ,当下我们
您可能关注的文档
- 【中考】(重庆专版)2016中考物理第一部分考点第一讲光现象探究.ppt
- 【中考】四川省2015届中考政治总复习课时2走向小康探究.ppt
- 制备论文绪论.docx
- 班主任培训--如何转变后进生绪论.pptx
- 【中考1对1】2016中考语文复习(课堂讲义):3-1-1+课内文言文阅读探究.ppt
- 【中考备战策略】2016年中考化学物质的推断(含中考典例)(共78张)探究.ppt
- 【中考冲刺】2015年中考物理专题提高:作图专题(含最新中考真题)探究.ppt
- 【中考夺分】2015年中考语文复习(苏教)第二篇积累与运用-专题3病句的辨别与修改(共28张)探究.ppt
- 【中考夺分】2015年中考语文复习(苏教)第一篇梳理-易读错多音字选编(共21张)探究.ppt
- 【中考风向标】2016年中考生物总复习第五部分生物圈中的人专题十一人体生命活动的能量供给探究.ppt
- 2025年江西软件职业技术大学单招笔试数学试题库含答案解析.docx
- 2025年事业单位工勤技能-江苏-江苏机械热加工二级(技师)历年参考题典型考点含答案解析.docx
- 2025年事业单位笔试-江苏-江苏卫生公共基础(医疗招聘)历年参考题典型考点含答案解析.docx
- 2025年河北对外经贸职业学院单招笔试综合素质试题库含答案解析.docx
- 2025年事业单位工勤技能-河北-河北保育员一级(高级技师)历年参考题典型考点含答案解析.docx
- 2025年广西理工职业技术学院单招笔试职业能力测验试题库含答案解析.docx
- 2025年职业技能鉴定-铁路职业技能鉴定-铁路职业技能鉴定(铁路线路工)高级技师历年参考题典型考点含.docx
- 2025年河南经贸职业学院单招笔试英语试题库含答案解析.docx
- 2025年浙江警官职业学院单招笔试数学试题库含答案解析.docx
- 2025年事业单位工勤技能-浙江-浙江下水道养护工五级(初级工)历年参考题典型考点含答案解析.docx
原创力文档


文档评论(0)