- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理第4章-自顶向下语法分析
; 基本思想;基本思想; 从文法开始符号出发进行推导;每一步推导
都获得文法的一个句型;直到产生出一个句
子,恰好是所期望的终结符串
每一步推导是对当前句型中剩余的某个非终
结符进行扩展,即用该非终结符的一个产生
式的右部替换该非终结符
如果不存在任何一个可以产生出所期望的终
结符串的推导,则表明存在语法错误; 自顶向下分析举例; 两类非确定性
在每一步推导中,选择对哪一个非终结符、
哪一个产生式都可能是非确定的
分析成功的结果:得到一个推导; 举例; 仅有产生式选择是非确定的
在每一步推导中,总是对最左边的非终结符
进行替换,但选择哪一个产生式是非确定的
分析成功的结果:得到一个最左推导
原理:每个合法的句子都存在至少一个起始
于开始符号的最左推导;一个终结符串,只
要存在一个起始于开始符号的最左推导,它
就是一个合法的句子
从左向右扫描输入单词,失败条件较简单; 改进的方法举例; 非终结符选择和产生式选择都是确定的
在每一步推导中,总是对最左边的非终结符
进行展开,且选择哪一个产生式是确定的,
因此是一种无回溯的方法
从左向右扫描,可能向前查看(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)
您可能关注的文档
最近下载
- DIN 9830 冲压件切割毛边高度.pdf VIP
- 2024-2025学年广东省深圳市红岭中学九年级上学期开学考数学试题及答案.pdf VIP
- 2020秋部编人教版语文二年级上册全册课件.pptx VIP
- 古建筑传统瓦工(砧刻工砌花街工泥塑工古建瓦工)施工机械用电管理详细措施.docx VIP
- (高清版)DB51∕T 2997-2023 四川省水文数据通信传输指南 .pdf VIP
- 二升三年级数学暑假作业完整版25天.pdf VIP
- 统编《世界历史》九年级上册教材分析与建议.doc VIP
- 沪教牛津版八年级英语上册词汇表.docx VIP
- 2025年全国翻译专业资格(水平)考试西班牙语二级口译试卷.docx VIP
- GB∕T 5796.1-2022 梯形螺纹 第1部分:牙型.pdf
文档评论(0)