编译原理及其习题解答(武汉大学)课件chap5.ppt

编译原理及其习题解答(武汉大学)课件chap5.ppt

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

第五章 自顶向下语法分析方法 5.2 例1 文法G1[S]: S→pA S→qB A→cAd A→a 对输入串pccadd进行语法分析。 解:自顶向下的分析过程: S = pA= pcAd= pccAdd = pccadd 相应的语法树为: 5.2 例2 文法G2[S]: S→Ap S→Bq A→a A→cA B→b B→dB 对输入串ccap进行自顶向下的语法分析。 解:分析过程 S = Ap= cAp=ccAp= ccap 对应的语法树为: 开始符号集合FIRST的定义 例 求FIRST集 证明 ∵ 当有形为 : D→ α1Aβ1 A→αB β 且 β 可 ε ,或者A→αB 的产生式,其中A,B,D∈ VN,α1,β1, α,β ∈ (VN∪ VT)* 时,在推导过程中可能出现这样的句型序列: S … α1Aβ1 … … α1αBββ1 … … α1αBβ1 … ∴ 由定义可知,FIRST(β1) ∈FOLLOW(A)和FIRST(β1) ∈FOLLOW(B),所以也就有FOLLOW(A) FOLLOW(B) Select集合的定义 给定上下文无关文法的产生式A→α,A∈VN, α ∈V*: ⒈若α  ε,则Select(A→α)=First(α) ⒉若α  ε,则Select(A→α)=(First(α)-{ε}) ∪Follow(A) LL(1)文法的分析过程消除了回溯 消除左公共因子的原因: A有n个候选式 A→α1| α2|… |αn,由于LL(1)文法对相同左部的产生式其右部的FIRST集必两两不相交,即SELECT(A→αi) ∩SELECT(A→αj)=Φ。所以当非终结符A执行匹配任务,A所面临的输入符号为a。A能根据不同的a选用相应的候选式αi执行匹配(否则报错)。 问题: 解决了以上问题后,是否一定可以变换为LL(1)文法呢? 对提取左公共因子的说明 (1)文法中不含左公共因子是LL(1)文法的必要条件; (2)注意隐式左公共因子的提取; (3)删除新文法中的无用产生式;  删除那些不可到达的非终结符或不可终止的非终结符,对文法重新压缩(或化简)。 (4)存在某些文法不能在有限步内提取完左公共因子; 并不是所有处理回溯问题都需采用提取左公共因子的方法。 消除全部左递归的 例子 递归子程序法的编译思想    从文法的识别符号开始,在语法规则支配下进行语法分析。逐个扫描单词符号序列,根据文法和当前输入符号预测到下一个语法成份v时,便确定v为目标,并调用和识别v的子程序,在分析v的过程中,又可能确立其它(或自身)子目标并调用相应的子程序,如此继续下去。 子程序 子程序(续) 递归下降分析程序 之 例 考虑文法G[E]: E→E+T | T T →T*F | F F →(E) | i 消去左递归后变成: E→ TE’ E’→ +TE’ | ε T→ FT’ T’→ *FT’ | ε F→ (E) | i 例5.16 文法G35[S]: S?(A)|aAb A?eA’|dSA’ A’?dA’|? 例5.9(续) A?eA’|dSA’ 例5.9(续) A’?dA’|? 预测分析程序的总控程序    对于不同的文法G,会有不同的分析表。但这种自顶向下的语法分析的总控程序却是一样的。预测分析程序的总控程序在任何时候都是按STACT栈顶符号X和当前输入符a行事的。    对任何(X,a),总控程序每次都执行下述三种可能的动作之一: (a) 若X= a =‘#’,则宣布分析成功,停止分析过程; (b) 若X= a ≠‘#’,则把X从STACT栈顶退出,让a指向下一个输入符号; 分析表M的构造思想 说明    为了总控工作的方便,还可以把分析表的元素的产生式的右部按逆序存放。当所选产生式中的开始符号为终结符,且与输入符号a相同时,此输入符号a就不必进入栈。 如例1中的分析表: 图灵机(补充) 自动机是计算设备的一些模型。 有限自动机:描述小存储量设备的较好的模型。 下推自动机:描述无限存储设备的较好的模型。(此无限存储设备只能以“

文档评论(0)

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

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

1亿VIP精品文档

相关文档