1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
回溯课件

第4章 语法分析 —— 自顶向下的语法分析 计 算 机 学 院 1)用E的右部符号串去匹配输入串 i ,按次序(自左向右)选用第一 个产生式 E?E+T完成推导,E 非终结符,将匹配任务交给E。 2) 再次用E的右部符号串去匹配输入串i,又一次选用第一个产生式 E?E+T完成推导,E是非终结符,将匹配任务交给E…… 总控程序控制分析栈的动作 1)当栈顶符号和当前输入符号是同一个终结符。 ——栈顶元素出栈,输入指针后移。 2)当栈顶非终结符X和当前输入符号a 不相同时, ——查预测分析表 找到产生式,右部代替左部序入栈。 3)当栈顶符号和当前输入符号同时是“ $ ” ——分析过程正常结束。 1.分析栈变化以预测分析表为依据.怎样构造测分析表? 2.分析栈的变化,体现识别语法单位的推导过程。 分析栈S[K]中的符号与输入带T[j]中的符号有什么不同 ? 谢 谢! 2009-1-9 * * * * 编 译 原 理 任务:根据文法规则,从源程序单词符号串中识别出 语法成分,并进行语法检查。 4.1 语法分析的任务 目标代码 生成程序 代码优化 程序 语义分析 生成中间 代码 语法分析 程序 词法分析 程序 S.P O.P 编译的工作过程 若 α? S 则 α?L(G[S]) 否则 α? L(G[S]) 从叶子节点开始自底向上构建一棵语法树。 + G[S] 主要方法:递归子程序法、 LL(1)分析法 (1)自顶向下分析的基本思想为: (2)自底向上分析的基本思想为: 若 S ? α 则 α?L(G[S]) 否则 α? L(G[S]) 从树根开始自顶向下构建一棵语法树。 + G[S] 主要方法:算符优先分析法、 LR分析法 语法两大类分析方法 ?? 4.2 自顶向下分析法 (1) 从S出发采用最左推导,试图逐步推出输入串α α?L(G[S])? 例如分析 “acb” S ==aAb ==acb (1) (3) 采用 “逐步匹配 ”的方法 一般分析的基本过程: 1 G[S]: S→aAb A→cd A→c 在推导的每一步我们如何去选定产生式? 4.2 自顶向下分析法 (1) “逐步匹配”进行推导 设置一指针指向待分析字符串首部,以开始符号为起点和指针指向字符去匹配,匹配成功指针就后移;重复这一过程,直到匹配成功或失败。如果遇到非终结符试探候选式的首字符是否与之匹配,从而完成推导。 (2) S作为语法树的根,试图自上而下为α构造一棵语法树: 若叶结点从左向右排列恰好α,则表示这棵语法树就是句子α的语法结构,α是文法的句子,。 若叶结点从左向右排列不是α ,则α不是文法的句子。 如何根据语法树去判断句子是否合法? 分析过程是设法建立一 棵语法树,使语法树的末端结 点与给定符号串相匹配. 1.开始:令S为根结点 · S 2.用S的右部符号串去匹配输入串 · S a A b 完成一步推导S?aAb 检查 a-a匹配 A是非终结符,将匹配任务交给A α= a c b G[S]: S→aAb A→cd A→c 匹配法进行自顶向下语法分析 3.选用A的右部符号串匹配输入串 A有两个右部,选第一个产生式 · a A b c d S 完成进一步推导A?cd 检查,c-c匹配; 4.回溯 ,即砍掉A的子树,改选A的 第二个右部A?c · S a A b c 检查 c-c匹配 b-b匹配 建立语法树,末端结点为acb与输入acb相匹配, 建立了推导序列 S?aAb?acb ∴ acb?L(G[S]) α= a c b G[S]: S→aAb A→cd ?? b-d不匹配(失败) α?L(G[S]) A→c 前面“abc”的分析过程,实质是从文法的开始符号 出发试图用一切可能的办法自上而下为它建立一棵语法 树。即,反复使用不同的规则,谋求输入串的过程。 自顶向下分析方法分类:  什么是回溯(backtracking)? 分析工作要部分地或全部地退回去重做叫回溯 确定的分析 不确定分析 回溯 × 迷宫求解

文档评论(0)

dart003 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档