网站大量收购闲置独家精品文档,联系QQ:2885784924

第五章自顶向下语法分析方法.ppt

  1. 1、本文档共113页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
消除左递归 消除直接左递归 形如:P ? P?|? ?非 ?,不以P打头 改写为:P ?βQ Q ??Q|? a)消除直接左递归 对文法G5: S?Sa S?b 可改写为: S?bS’ S’?aS’|? 改写后的文法所产生的语言句子集仍为:L={ban|≥0} 改写后的文法为LL{1}文法 消除左递归 消除间接左递归 要求文法: 1. 无回路(A(?+A) 2.无空产生式 先将间接左递归变成直接左递归,然后再消除直接左递归。 间接左递归的例 例5.11文法G6为: A?aB A?Bb B?Ac B?d 若有输入串:adbc# 分析过程的语法树: d A a B A c B b (a) A a B A c B b A c . . . (b) b)消除间接左递归 对文法G6:A?aB A?Bb B?Ac B?d 替换为:A?aB A?Bb B?aBc B?Bbc B?d 消除左递归:A?aB A?Bb B?(aBc|d)B’ B’?bcB’|? 改写后的文法为LL{1}文法 c)消除文法中一切左递归的算法 对文法中一切左递归的消除要求文法中不含回路 A?+A 的推导 满足这个要求的充分条件是,文法中不含形如 A?A 的有害规则和 A?? 的空产生式 消除文法中一切左递归的算法步骤 把文法的所有非终结符按某一顺序排序,如:A1,A2,……An 从A1开始消除左部为A1的产生式的直接左递归,然后把左部为A1的规则的右部逐个替换左部为A2右部以A1开始的产生式中的A1,并消除左部为A2的产生式的直接左递归,…… 去掉无用产生式 使用算法消除左递归的例 例:有文法的产生式为: (1) S?Qc|c (2) Q?Rb|b (3)R?Sa|a 若排序为:S Q R 无直接左递归,替换:(1)代入(3) (4) R? Qca|ca|a 替换:(2)代入(4) (5) R? Rbca|bca|ca|a 消除直接左递归 S?Qc|c Q?Rb|b R? (bca|ca|a)R’ R’? bcaR’|? 使用算法消除左递归的例 (1) S?Qc|c (2) Q?Rb|b (3)R?Sa|a 若排序为:R Q S 替换:(3)代入(2) Q? Sab|ab|b 再代入(1) S? Sabc|abc|bc|c 消除直接左递归 S? (abc|bc|c)S’ S’?abcS’|? R? (bca|ca|a)R’ R’? bcaR’|? 消除左递归的例 例:考虑文法 S ? (L)|a L?L,S|S 消除左递归后的文法为 S?(L)|a L?SL? L??,SL?|? 5.4 不确定的自顶向下分析思想 当文法不满足LL(1)时,可以用不确定的自顶向下分析法(带回溯的自顶向下分析法) 当某个非终结符的产生式有多个候选时,对当前输入符号无法确定选用唯一的产生式,从而引起回溯。 回溯—退回,重新匹配 1.由于相同左部的产生式的右部FIRST集的交集不为空而引起回溯 例如,有文法: S?xAy A?ab|a 若当前输入串为 xay 对于字符 a,可选用产生式A?ab, 但b和y不匹配,回溯,重新选用A?a 2.由于相同左部的非终结符的右部存在能 ?*? 的产生式,且该非终结符FOLLOW集中含有其它右部FIRST集的元素 例如,文法: S ?aAS S ?b A ?bA A ?ε 对当前输入串 ab#,首选 S ?aAS 对于字符 b,可选用产生式 A ?bA A为非终结符,而且后面有S,回溯,选用产生式 A ?ε,然后选S ?b,完成匹配。 3.由于文法含有左递归而引起回溯 例如,文法: S ?Sa S ?b 对当前输入串 baa#, 对于字符 b,可选用产生式 S ?b,b为终结符,不能继续推导,回溯 选用产生式 S

文档评论(0)

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

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

1亿VIP精品文档

相关文档