- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 自顶向下语法分析方法_1
第五章 自顶向下语法分析方法 学习目标: 掌握:LL(1)文法的判别,预测分析法,递归子程序的构造方法 理解:LL(1)文法 了解:不确定的自顶向下分析 语法分析的作用是识别由词法分析给出的单词序列是否是给定文法的正确句子 分类: 5.1 确定的自顶向下分析思想 5.2 LL(1)文法的判别 5.3 不确定的自顶向下分析思想 5.4 确定的自顶向下分析方法 5.1 确定的自顶向下分析思想 1 确定分析的条件 2 开始符号集FIRST(α)的定义 3 后跟符号集FOLLOW(A)的定义 4 选择集合SELECT(A→α)的定义 5 LL(1)文法的定义 1 确定分析的条件 从文法的开始符出发,如能根据当前的输入符号(单词符号)唯一地确定选用哪个产生式进行推导,则分析是确定的。 例1 设有文法G1[S]: S-pA|qB A-cAd|a B-dB|b 若输入串W=pccadd。自顶向下的推导过程为: 要进行确定的自顶向下的分析,文法要满足一定的限制——即文法是LL(1)文法。 先研究三个定义 开始符号集FIRST 后跟符号集FOLLOW 选择集合SELECT 2 开始符号集FIRST(α)的定义 定义:设G=(VN, VT, P, S)是上下文无关文法, ??(VN?VT)* FIRST(?) = { a ?VT | ??* a......} 若??* ε 则规定ε ∈FIRST(?) 直观上说文法符号串? 的开始符号集是由?推导出的开头的终结符(包括ε)组成。 例文法G2[S]: 3 后跟符号集FOLLOW(A)的定义 定义 设G=(VT, VN, S,P)是上下文无关文法,A∈VN , FOLLOW(A)={a|S=*…Aa…,a ∈VT}, 若有S=* …A,则规定 # ∈FOLLOW(A) (注: #输入串#,‘#’做为输入串的结束符) 直观上说,非终结符A的后跟符号集是由句型中紧跟A后的那些终结符(包括#)组成。 例 文法G3[S]: S→aA|d A→bAS|ε 说明: 对于非终结符A的两个产生式 A→bAS 和 A→ε, 当输入符号∈FIRST(bAS)={b}时,选A→bAS推导, 当输入符号∈FOLLOW(A)={#,a,d }时,选A→ε推导。 由于FIRST(bAS)∩FOLLOW(A)=ф,所以可进行确定的自顶向下分析。 4 选择集合SELECT(A→α)的定义 定义 对给定的上下文无关文法的产生式A→α,A∈VN,α∈V*, 若α≠*ε,则SELECT(A→α)=FIRST(α) 若α=*ε,则SELECT(A→α) =(FIRST(α)-{ε})∪FOLLOW(A) 引入原因 假设A对应的输入符为a,则在自顶向下的分析中应选择这样的产生式进行推导:A→?,即First(?)中包含a;但?可能导出空串,这时a应是A的一个后跟符,即a应属于Follow(A)集合。这就是定义集合SELECT(A→?)的直接原因。 直观上说某产生式A→α的选择集合是指遇到哪些输入符号(包括#)时选用该产生式向下推导。 说明: 同一非终结符的不同产生式A→α与A→β,若SELECT(A→α)∩SELECT(A→β)=Φ,则一定可以进行确定的自顶向下分析 5 LL(1)文法的定义 定义 : 一个上下文无关文法是LL(1)文法的充分必要条件是, 对每个非终结符A的两个不同产生式A→α与A→β,满足SELECT(A→α)∩SELECT(A→β)=Φ。 ? LL(1)文法的含义是: 第一个L表示从左到右扫描输入串 第二个L表示分析过程用最左推导 1表明只需向前看一个符号便可以决定选哪个产生式进行推导,类似地LL(k)文法需要向前看K个符号才可以确定选用哪个产生式。 例 有文法G[S]为: S→aAS S→b A→bA A→ε 5.2 LL(1)文法的判别 要判别一个上下文无关文法是否是LL(1)文法 分为五步: 1.? 求能推出ε的非终结符集 2.??计算每个产生式右部α的FIRST(α)集 3.??计算每个非终结符A的FOLLOW(A)集 4.??计算每个产生式A→α的SELECT(A→α)集 5.??按LL(1)文法的定义判别 1.? 求出能推出ε的非终结符集 算法: 用S表示能推出ε的非终结符集 第一步令S={ Aj | Aj→ ε ? 产生式集} 对每个产生式p: Ap→X1....Xn,若X1....Xn?S,则 S:= S? {Ap } 重复第二步的循环,直至S 收敛(不再变化)为止。 2.??计算每个产生式右部α的FIR
您可能关注的文档
- 第五章 水轮机选择.ppt
- 第五章 汽车承保.ppt
- 第五章 放置特征的建立.ppt
- 第五章 贸易政策工具0525.ppt
- 第五章 传动系统设计-2012-3.ppt
- 第五章 Transact-SQL语言基础1.ppt
- 第五章 蒸汽供热系统.ppt
- 第五章 中国海运货物保险条款.docx
- 第五章 连锁遗传和性连锁t.ppt
- 第五章 三角函数复习课件 新课标 人教版.ppt
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
最近下载
- 二年级家长会班主任发言稿 VIP
- 2023-2024学年上海市位育中学八年级上学期期中考试英语试卷含详解.docx VIP
- 【自做】白雪公主PPT正常版.ppt
- 名著阅读《群英会蒋干中计》课件精品课件(选自罗贯中《三国演义》;34页).pptx VIP
- 2023-2024学年北京某中学八年级上学期期中考试英语试卷(含详解).pdf VIP
- 手术患者意外伤害预防.pptx
- 2024年初中信息技术学业水平合格性考试题库含答案.pdf
- 2024-2025学年小学科学一年级上册(2024)教科版(2024)教学设计合集.docx
- 2024全国中考语文试题分类汇编:记叙文阅读.pdf VIP
- 英语国家概况100问及答案.doc
文档评论(0)