- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自顶向下的语法分析技术 计算机科学系 李静 语法分析 阶段 自词法分析后,编译过程的第二个阶段 任务 对单词序列进行分析,识别出合适的语法单位 方法分类 自顶向下 自底向上 自顶向下分析方法 概念 从开始符号出发,看能否推导出待检查的符号串,如果能,则表明此符号串是该文法的句型或句子,否则就不是。 能否从根结点出发向下生长出一棵语法树,其叶结点组成的句子恰好为输入字符串。 分类 不确定的自顶向下分析方法 确定的自顶向下分析方法 例子:不确定的自顶向下分析 G[S]: S→aAbc|aB A→ba B→beB|d 输入串:abed是否是该文法的句子 特点 不确定的自顶向下分析 出现回溯现象 效率低 编程复杂 例子:确定的自顶向下分析 G[S]: S→aBc|bCd B→eB|f C→dC|c 输入串:aefc是否是该文法的句子 例子 文法G[S]: S → aA|d A → bAS| ε 判断W=abd 特点 确定的自顶向下分析 不会出现回溯现象 效率高 编程简单 怎样才能采用确定的自顶向下分析? 怎样才能采用确定的自顶向下分析? LL1文法 相关概念 首符号集 设有G=(VN, V T,P,S)是上下文无关文法 产生式:A→α FIRST(α)={a| α?*aβ} 例子 A→Bp|Ct B→r C→9|23 FIRST(Bp)={?} 练习 已知文法G[S]: S → eT|RT T → DR| ε R → dR| ε D → a| bd 则: FIRST(S)= FIRST(T)= FIRST(R)= FIRST(D)= 后跟符号集 设有G=(VN, V T,P,S)是上下文无关文法 产生式:S→μAβ FOLLOW(A)={a| a ∈FIRST(β)} 例子 A→dBCt B→r C→9|23 FOLLOW(B)={} 练习 已知文法G[S]: S → eT|RT T → DR| ε R → dR| ε D → a| bd 则FOLLOW (R)= 选择集 对上下文无关文法的产生式 A→α 若α不能推出ε,则SELECT(A→α)= FIRST(α) 若α能推出ε,则SELECT(A→α)= FIRST(α)-{ε}∪ FOLLOW(A) 狗的艺术照 狗的艺术照 狗的艺术照 狗的艺术照 狗的艺术照 狗的艺术照 狗的艺术照 狗的艺术照 LL1文法 基本思想 从左到右扫描源程序,同时从开始符号生成句子的最左推导,并且只要向前查看一个输入符号,便能唯一确定当前应选择的规则。 文法满足的条件 无左递归 无回溯 LL1文法的含义 L:从左到右扫描字符串 L:采用最左推导 1:只看右边一个字符 LL1文法的充分必要条件 一个上下文无关文法是LL1文法的充分必要条件是: 对每个非终结符A的不同产生式, A→α, A→β满足 FIRST(A→α)∩ FIRST (A→β)=O 对每个非终结符A的不同产生式, A→α, A→ ε满足 FIRST(A→α)∩ FOLLOW (A)=O 例子:文法的判别 若有文法G[S]: S → aA|d A → bAS| ε 证明这是一个LL1文法 证明: FIRST(S→aA)∩ FIRST (S→d)= FIRST(A→ bAS)∩ FOLLOW(A)= 练习 若有文法G[Z]: Z → (A) A → a| bB B → Aab 判断这是否是一个LL1文法 练习 若有文法G[S]: S → aAS|b A → bA| ε 判断这是否是一个LL1文法 不是LL1文法的原因 在采用确定的自顶向下分析前,首先判断该文法是否是一个LL1文法 如果不是 左公因子 左递归 LL1文法的转换--提取左公因子 左公因子容易产生回溯 提取左公因子法 A → αβ1| αβ2|…| αβn A → α(β1| β2|…| βn) A → αA’ A’= β1| β2|…| βn LL1文法的转换--消除左递归 文法的产生式中含有左递归,容易产生无限循环,应消除 直接左递归 A → Aβ 间接左递归 A → Bβ B → Aα 例子(1) 将文法 S → Sa S → b 改为非左递归文法 答案 S → bS’ S’ →aS’| ε 练习 【复旦大学】将文法G[S] S → Sa|Nb|c N → Sd|Ne|f 改为无左递归的文法 确定的自顶向下分析技术 实现方法 递归子程序法 对每一个语法成分(用非终结符号代表)构成相应的分析子程序,以完成该非终结符所对应的语法成分的分析和识别任务。遇到该语法成分时,调用该程序。语法成分之间不可避免会含有递归,所以分析子程序间也会有递归调用。 子程序 子程序又分为 简单子程序(不调用任何子程序) 嵌套子程序(调用其它子程序;但不调用它本身) 递归子程序(直接或间接
您可能关注的文档
- 2013年高中化学学业水平测试课件:第14讲 化学反应速率和限度.ppt
- 2013年温州高中化学会考备考策略.ppt
- 2013年深圳市第二次调研考试地理详解.ppt
- 2013年最新高中生物精品教学课件:现代生物进化理论的主要内容(1)(人教版必修2).ppt
- 2013年高中新人教版数学教学精品课件:《4.2结构图》课件3 新人教A版选修1-2.ppt
- 2013年高考广东文科历史试题解析.ppt
- 2013年高考化学一轮复习课件(人教版):第五单元 第30讲 常见仪器与基本操作.ppt
- 2013年高考化学复习课件:_综合性实验题解(33题)题策略.ppt
- 2013概率论与数理统计期末复习.ppt
- 2013概率论与数理统计-知识点例题讲解2.ppt
- (人教A版)选择性必修第一册高二数学上册考点突破练习专题12 椭圆的定值、定点和最值问题(原卷版).docx
- 【中考模拟】2025年江苏省镇江市第三中学数学中考练习卷(含解析).docx
- 小学数学奥数思维训练 数论专项:位值原理(含解析).docx
- 河南省部分学校2024-2025学年高三下学期2月开学收心考 政治试卷(含答案).pdf
- 河南省部分学校2024-2025学年高三下学期2月开学收心考 英语试卷(含答案).pdf
- (人教A版)选择性必修第一册高二数学上册考点突破练习专题02 空间向量数量积、坐标运算及解决直线与平面的位置关系(原卷版).docx
- (人教A版)选择性必修第一册高二数学上册考点突破练习专题03 利用空间向量解决空间距离问题(原卷版).docx
- (人教A版)选择性必修第一册高二数学上册考点突破练习第一章:空间向量与立体几何综合测试卷1(解析版).docx
- (人教A版)选择性必修第一册高二数学上册考点突破练习第二章:直线和圆的方程综合测试卷1(解析版).docx
- (人教A版)选择性必修第一册高二数学上册考点突破练习第三章:圆锥曲线综合测试卷1(解析版).docx
文档评论(0)