- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
; 基本思想;基本思想; 从文法开始符号出发进行推导;每一步推导
都获得文法的一个句型;直到产生出一个句
子,恰好是所期望的终结符串
每一步推导是对当前句型中剩余的某个非终
结符进行扩展,即用该非终结符的一个产生
式的右部替换该非终结符
如果不存在任何一个可以产生出所期望的终
结符串的推导,则表明存在语法错误; 自顶向下分析举例; 两类非确定性
在每一步推导中,选择对哪一个非终结符、
哪一个产生式都可能是非确定的
分析成功的结果:得到一个推导; 举例; 仅有产生式选择是非确定的
在每一步推导中,总是对最左边的非终结符
进行替换,但选择哪一个产生式是非确定的
分析成功的结果:得到一个最左推导
原理:每个合法的句子都存在至少一个起始
于开始符号的最左推导;一个终结符串,只
要存在一个起始于开始符号的最左推导,它
就是一个合法的句子
从左向右扫描输入单词,失败条件较简单; 改进的方法举例; 非终结符选择和产生式选择都是确定的
在每一步推导中,总是对最左边的非终结符
进行展开,且选择哪一个产生式是确定的,
因此是一种无回溯的方法
从左向右扫描,可能向前查看(lookahead)
确定数目的单词
分析成功的结果:得到唯一的最左推导
分析条件:对文法需要有一定的限制; 举例(向前查看 2 个单词); 左递归带来的问题; 要求文法不含左递归; 左公因子带来的问题; 通常要求文法不含左公因子; 应用较普遍的自顶向下预测分析是
LL(1)分析; 第一个“L”, 代表从左(Left)向右扫描单词
第二个“L”,代表产生的是最左(Leftmost)
推导
“1”代表向前查看(lookahead)一个单词; 要求文法是LL(1)的
什么是LL(1)文法?
先引入两个重要概念; First 集合
Follow 集合; 定义
设 G =(VT,VN,P,S)是上下文无关文法
对 ? ?(VT ?VN)*,
First(?)= { a?? ?* a?, a ?VT, ? ?(VT ?VN)*,
或者 ? ?*ε时 a =ε}
或者
First(?)= { a?? lm?* a?, a ?VT, ? ?(VT ?VN)*,
或者 ? lm?*ε时 a =ε}; 计算 First 集合; 例:计算 First 集合; 例:计算 First 集合( 续); 例:计算 First 集合( 续); 例:计算 First 集合( 续); 例:计算 First 集合( 续); 例:计算 First 集合( 续); 定义
设 G =(VT,VN,P,S)是上下文无关文法,对
每个 A?VN,
Follow(A) = { a ? S# ?* ?A?# 且 a?First(?#),
?, ? ? (VT ?VN)* }
(# 代表输入单词序列右边的结束符); 计算 Follow 集合; 例:计算 First 和 Follow 集合; 例:计算 First 和 Follow 集合; 例:计算 First 和 Follow 集合; 例:计算 First 和 Follow 集合; 例:计算 First 和 Follow 集合; 例:计算 First 和 Follow 集合; 定义: 预测集合(Predictive Set) ; 定义: LL(1)文法;; 递归下降 LL(1)分析程序
每个非终结符对应一个分析子程序; 工作原理
每个非终结符都对应一个子程序。该子程序
的行为根据语法描述来明确:根据下一个输
入符号来确定按照哪一个产生式进行处理,
再根据该产生式的右端,
每遇到一个终结符,则判断当前读入的单词是否
与该终结符相匹配,若匹配,再读取下一个单词
继续分析;不匹配,则进行出错处理
每遇到一个非终结符,则调用相应的子程序; 例 对于下列关于 function 的唯一产生式
function ? FUNC ID ( parameter_list ) statement
(function,parameter_list,和 statement 是非终结符); 例 续上页; 例 对于下列文法 G(S)
您可能关注的文档
最近下载
- 职称技术工作报告范文.docx VIP
- (2021年品管圈活动成果报告书)降低ICU患者身体约束率.docx VIP
- 解读学习2025《党政机关厉行节约反对浪费条例》培训课件.pptx VIP
- 《咏物诗》-公开课件.ppt VIP
- 品管圈QCC降低ICU患者约束缺陷率.pptx VIP
- 《党政机关厉行节约反对浪费条例》(2025)附新旧对照解读课件.pptx VIP
- 安徽单招考试2025、2025分类考试真题语文数学英语试题(含答案).pdf VIP
- 保证农民工工资及时支付的措施.docx VIP
- 2024届高考语文复习:诗歌鉴赏之题材 咏物言志诗 课件(共33张PPT).pptx VIP
- 手外伤急诊手术护理配合.pptx VIP
文档评论(0)