[语法分析—自上而下分析.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[语法分析—自上而下分析

4.4递归下降分析程序的构造 是进行语法分析的一种方法,要求文法是LL(1)文法 实现思想: 识别程序由一组过程组成。每个过程对应于文法的一个非终结符号。 每一个过程的功能是:选择正确的右部,扫描完相应的字。在右部中有非终结符号时,调用该终结符号对应的过程来完成。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 基本架构(1) 对于每个非终结符号的产生式U→u1|u2|…|un处理的方法如下: U( ){ ch=当前符号; if(ch是u1符号串的第一个符号) 处理u1 else if(ch是u2符号串的第一个符号) 处理u2 …… else error() } Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 由于无回溯的文法保证选择是唯一的。 当存在ε时,可以用error()替代为{return;}这样可以较晚发现错误。 约定:进入这个过程时,已读入U的第一个符号到当前符号。离开这个过程时,下一个符号已经被读到当前符号。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 基本架构(2) 对于U的每个右部ui=x1x2…xn的处理架构如下: 处理x1的程序; 处理x2的程序; … … … 处理xn的程序; 如果右部为空ε,则不处理。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 基本架构(3) 对于右部中的每个符号xi 如果xi为终结符号: if(x== 当前输入符号串中的符号) {NextCh();return;} else 出错处理 如果xi为非终结符号,直接调用相应的过程: xi() Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. P74 过程对应于前述的文法 E -TE E-+TE |ε T -FT T-*FT |ε F-(E) |i Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 4.5预测分析程序 递归下降分析法:采用递归过程。因此实现分析程序所使用的高级语言必须支持递归过程才行。 预测分析法是自顶向下分析的另一种方法。 使用下推自动机的方式实现。 使用一个二维分析表和栈联合进行控制来实现分析。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. ? i + * ( ) # E E→TE ? ? E→TE ? E ? E→+TE ? ? E→ε E→ε T T→FT ? T→FT ? ? T ? T→ε T→*FT ? T→ε T→ε F F→i ? ? F→(E) ? ? Evaluation only. Created with Aspose.Slides for .NET 3.5 Clien

文档评论(0)

wangz118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档