- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上次课程内容回顾 3.4 自上而下语法分析3.4.1 自上而下分析的一般方法 3.4.1 自上而下分析的一般方法(续1) 3.4.2 消除左递归 1 消除文法的直接左递归(续1) 1 消除文法的直接左递归(续1) 1 消除文法的直接左递归(续2) 2 消除文法的左递归 2 消除文法的左递归(续1) 3.4.3 提取左因子 3.4.3 提取左因子(续1) 3.4.4 递归下降分析 文法的状态转换图 : 状态图的化简: 状态图的化简(续1) 3 递归下降子程序 3 递归下降子程序(续) 结束(2005年3月28日) 上次课程内容回顾 3.4.5 预测分析器 3.4.5.1 非递归预测分析器的工作模式 1 预测分析表 2 工作方式 3 驱动器算法 4 用预测分析器分析句子 4 用预测分析器分析句子(续) 3.4.5.2 构造预测分析表 3.4.5.2 构造预测分析表(续1) 3.4.5.2 构造预测分析表(续2) 3.4.5.2 构造预测分析表(续3) 3.4.5.2 构造预测分析表(续4) 3.4.5.2 构造预测分析表(续5) 3.4.5.3 LL(1)文法 3.4.5.3 LL(1)文法(续1) 3.4.5.3 LL(1)文法(续2) 3.4.5.3 LL(1)文法(续3) 3.4.5.3 LL(1)文法(续4) 结 束(2005年3月30日) M[A,a]的作用:指导产生式产生句子(指导推导) 问题:是否为任意文法构造的分析表M[A,a]中都最多有一个条目? 例3.23 二义文法文法的预测分析表: 文法: S→iCtSS|a S→eS|ε C→b ? a b e i t # S ? ? ? ? S ? ? ? ? C ? ? ? ? ? 预测分析表: FIRST与FOLLOW集合: FIRST(C) = {b} FIRST(S) = {ε, e} FIRST(S) = {i, a} FOLLOW(S) = {#, e} FOLLOW(S)= {#, e} FOLLOW(C) = {t} a iCtSS b eS ε ε 定义3.12 文法G被称为是LL(1)文法,当且仅当为它构造的预测分析表中不含多重定义的条目。由此分析表所组成的分析器被称为LL(1)分析器,它所分析的语言被称为LL(1)语言。第一个L代表从左到右扫描输入序列,第二个L表示产生最左推导,1表示在确定分析器的每一步动作时向前看一个终结符。 ■ 判定LL(1)文法的方法:a.构造分析表; b.无需构造分析表。 推论3.2 G是LL(1)的,当且仅当G的任何两个产生式A→α|β满足: 对任何终结符a,α和β不能同时推导出以a开始的串; α和β最多有一个可以推导出ε; 若β=*ε,则α不能导出以FOLLOW(A)中终结符开始的任何串。 ■ 若条件1不满足,即存在终结符a,α和β同时推导出以a开始的串,则根据算法3.7步骤2,M[A,a]中有多重定义A→α和A→β; 若条件2不满足,即α和β均可推出ε串,则根据算法3.2步骤3,任何属于FOLLOW(A)的终结符b(包括#),M[A,b]中有多重定义A→α和A→β ; 若条件3不满足,即存在终结符b,它既在FOLLOW(A)中,又在FIRST(α)中,则算法3.2步骤2把条目A→α加入到M[A,b]中,而步骤3又把条目A→β加入到M[A,b]中,即M[A,b] 中有多重定义A→α和A→β 。 ■ 根据推论3.2,有左递归和左因子的文法不是LL(1)文法。 为什么?(考虑算术表达式文法),二义文法呢? 推论3.2 G是LL(1)的,当且仅当G的任何两个产生式A→α|β满足: 对任何终结符a,α和β不能同时推导出以a开始的串; α和β最多有一个可以推导出ε; 若β=*ε,则α不能导出以FOLLOW(A)中终结符开始的任何串。 ■ 证明: 推论3.2 G是LL(1)的,当且仅当G的任何两个产生式A→α|β满足: 对任何终结符a,α和β不能同时推导出以a开始的串; α和β最多有一个可以推导出ε; 若β=*ε,则α不能导出以FOLLOW(A)中终结符开始的任何串。 ■ E →TE (1) E→+TE|ε (2) (G3.4) T →FT (3) T→*FT|ε (4) F →(E) |-F|id (5)..(7) E→E+T|T T→T*F|F (G3.4) F→(E)|-F|id 文法(G3.4)不是LL(1)的,因为不满足条件1。 事实上:任何直接左递归必有公共左因子。(为什么?) 文法(G3.4)是LL(1)的,因为三个条件均满足。 具体判断请同学们自己做
您可能关注的文档
最近下载
- 老友记台词剧本第一季第1集中英双语左右对照.pdf VIP
- 2025年5月18日河南省事业单位联考《公共基础知识》试题及答案解析.pdf
- 2018年最新发布的ISO50001-2018能源管理体系标准条款中英文版..pdf VIP
- 中欧班列“齐鲁号”跨境物流供应链金融模式研究.pdf VIP
- 运动心理学PPT完整全套教学课件.pptx VIP
- 七年级历史数字故事——隋朝大运河课件.ppt VIP
- 旅游职业礼仪-全套PPT课件.pptx
- 2025人教版数学三年级上册全册教学课件.ppt
- 居民健康档案知识培训课件.pptx VIP
- 2025年秋季人教版7年级上册数学全册教学课件(新教材).pptx
文档评论(0)