- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.2.2 文法的左递归性和回 溯的消除 我们分析发现引起回溯的原因是 : 在 文法中 , 当某个非终结符 A 有多个候选式时 : A → α 1 | α 2 | α 3 | ??????| α n 遇到用 A 去匹配当前输入符号 a 时, 无法确定选用唯一的一个候选式,而只 能逐一进行试探, 从而引起回溯。具体 表现在下面两种情况。 4.2.2 文法的左递归性和回 溯的消除 第一种情况 : 文法中相同左部的 规则,其 右部左端 第一个符号相同而 引起回溯。 例 设有文法 G[S] : S → aAb A→ de | d 4.2.2 文法的左递归性和回 溯的消除 第二种情况 : 文法中相同左部的规 则,其中 某一右部能推出 ε 串 ,例如 , 文法 G : A → Bx B→ x |ε 其非终结符 B 有两个右部,第二个右 部能推导出 ε 串且两个右部左端第一 个符号不相同,但在分析符号串 W = x 时出现回溯。 4.2.2 文法的左递归性和回 溯的消除 试探分析过程如下图所示: A A A → Bx B→ x |ε W = x B x B x x 匹配失败 ε 匹配成功 4.2.2 文法的左递归性和回 溯的消除 综上所述,在自上而下分析过程 中,为了避免回溯, 对描述语言的 文法有一定的要求 : 4.2.2 文法的左递归性和回 溯的消除 对文法的某个非终结符 A, 当它有多 个侯选式时 : A → α 1 | α 2 | α 3 | ??????| α n 若用 A 匹配输入串时 , 能根据当前读到 的输入符号 a 唯一地选择一条规则去匹 备输入串 。或者说,能唯一地选择一条 规则进行推导。 4.2.2 文法的左递归性和回 溯的消除 这也就是说,在自上而下分析过程 中,为了避免回溯, 要求描述语言的 文法是 LL(1) 文法。 LL(1) 文法的判断条件 为了建立 LL(1) 文法的判断条件,需引 进三个相关集: FIRST 集 FOLLOW 集 SELECT 集 LL(1) 文法的判断条件 (1) 设 α 是文法 G 的任一符号串,定义文 法符号串 α 的首符号集合。 * FIRST( α ) = { a | α ? a… 且 a ∈ V } T * 若 α ? ε , 则规定 ε ∈ FIRST( α ) LL(1) 文法的判断条件 例 设有文法 G[S]: S → Ap | Bq A → cA | a B → dB | b FIRST(Bq) = { b, d } Bq ? bq Bq ? dBq FIRST(Ap) = { c, a } AP ? cAp AP ? ap LL(1) 文法的判断条件 (2) 设文法 G 的开始符号为 S ,对于 G 的任 何非终结符 A ,定义非终结符 A 的后 继符号的集合 * FOLLOW(A) ={ a | S ? … Aa … 且 a ∈ V } T * 若有 S ? … A , 则规定 $ ∈ FOLLOW(A) 。 LL(1) 文法的判断条件 换句话说 FOLLOW(A) 是 G 的所有句 型中紧接在 A 之后出现的终结符或 $ 。 这里我们用 $ 作为输入串的结束符, 例如, $ 输入串 $ 。 也可以用 # 作为输入串的结束符,例 如, # 输入串 # 。 LL(1) 文法的判断条件 例 设有文法 G[A]: A→aB | d B→bBA | ε FOLLOW(B) = { $, d, a } A ? aB A ? aB ? abBA ? abBd A ? aB ? abBA ? abBaB LL(1) 文法的判断条件 (3) 定义规则的选择集合 SELECT ,设 A→ α 是文法 G 的任一条规则,其中 A ∈ V N , α ∈ (V N ∪ V T )* ,定义 * FIRST( α ) 若 α ? / ε SELECT(A→ α ) = FIRST( α )/{ ε } ∪ FOLLOW (A) * 若 α ? ε LL(1) 文法的判断条件 例 设有文法 G[A]: A→aB | d B→bBA | ε SELECT(A→aB ) = FIRST(aB) = { a } SELECT(A→d ) = FIRST(d) = { d } LL(1) 文法的判断条件 SELECT(B→bBA ) = FIRST(bBA) = { b } SELECT(B→ε ) = FIRST( ε )/{ ε } ∪ FOLLOW(B) = { $, d, a } FO
您可能关注的文档
最近下载
- 季度查漏补种登记表.doc VIP
- GB50318-2017 城市排水工程规划规范.pdf VIP
- 2025至2030中国移动视频监控行业市场占有率及投资前景评估规划报告.docx VIP
- 汽车门锁及空调故障.pptx VIP
- 生态环境数据分级管理指南.pdf VIP
- 八省联考2026届高三年级12月检测训练(T8联考)化学试卷(含答案详解).pdf
- 2022春(六下)顺 - 填空题1.docx VIP
- T∕CACM 1319-2019 慢性阻塞性肺疾病中医诊疗指南.docx VIP
- GZ021 化工生产技术赛项(正式赛卷)仿真操作模块方案及评分6.doc VIP
- 金蝶云星空完整版.pdf VIP
原创力文档


文档评论(0)