- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自动机-第5章
第五章 前后文无关文法 §1.上下文无关文法 上下文无关文法定义 推断串w 递归推理 推导 最左推导 最右推导 文法定义的语言 句型 设计文法并证明正确性 上下文无关文法实例 L={0m1m|m≥0} S→0S1|ε L={0m1n|mn} S→0S|T T→0T1|ε §2.语法分析树 语法分析树定义 递归推理,推导和语法分析树的关系。 如果通过递归推理可以得出w∈T*属于变元A的语言,则存在根为A,产物为w的语法分析树。 设语法分析树根为A,产物为w∈T*,则有 。 设语法分析树根为A,产物为w∈T*,则有 。 设有推导 ,可推导出w属于变元A的语言中。 语法分析树定义 定义.给定文法G=V,T,P,S,G的语法分析树是满足如下条件的带标签树: 每个内部结点的标签是V中变元。 每个叶结点的标签可以是一个变元,一个终结符或ε。如果为ε,则该叶结点一定是其父结点的唯一子结点。 如果某个内部结点的标签是A,其叶结点标签从左至右依次是X1, X2, …Xn,则A→ X1X2…Xn,是P中的一个产生式。 1.递归推理?语法分析树 定理.设G是CFG,如果通过递归推理得出终结符号串w在变量A的语言中,则存在G的根为A,产物为w的语法分析树。 证明. 如果推理步数=1,说明A→w是产生式,因此存在根为A,产物为w的语法分析树。 假设推理步数≤n时,定理成立。现假设得出w的推理步数=n+1。 设推出w在变量A语言中最后一步使用产生式A→ X1 X2 … Xk ,其中Xi是变量或终结符,则w= w1w2 … wk。 如果Xi是终结符,则Xi=wi。如果Xi是变量,则wi在变量Xi的语言中,根据归纳法假设,有以变量Xi是为根,wi 为产物的语法分析树。因此,上图即是所求的语法分析树。 2.语法分析树?最左推导 定理.设CFG G有一个根为A,产物为w∈T*的语法分析树,则存在一个最左推导 。 证明.对树的高度作归纳法。 树高为1,叶结点标签为w=w1, w2,…,wk,由语法分析树定义,A→w1 w2…wk,是G的产生式,可以一步从A产生w,即有从A到w的最左推导。 设树高为n时,存在最左推导。现假设树高为n+1,根结点A的子结点标签为X1, X2,…,Xk。 这时w=w1w2…wk, wi是以Xi为根的子树的产物。 若Xi是终结符,令wi=Xi; 若Xi是变元,则以Xi为根的子树高度为n, 由归纳法假设,有一个从Xi到wi的最左推导。 构造最左推导。 利用产生式A?X1X2…Xk 和从X1到w1的最左推导有 A?*w1X2…Xk。从X2到w2的最左推导有 A?*w1w2…Xk。以此类推,最后有 A?*w1w2…wk。 3.推导?递归推理 定理.给定CFG G和一个从A到w∈T*的推导,则存在一个递归推理,推断w属于A的语言。 证明.对推导的长度作归纳法。 推导长度为1,由推导定义,A→w是G的产生式,因此有递归推理,断定w属于A代表的语言。 设推导长度为n时,存在递归推理。现假设推导长度为n+1,最先使用的产生式是A→X1X2…Xk。整个推导形如 A?X1X2…Xk?…?w1w2…wk, 其中若Xi是终结符,则wi=Xi; 若Xi是变元,则有从Xi到wi的推导,且该推导的长度不超过n。 由归纳法假设,有递归推理,断定wi属于Xi代表的语言。 因此,从产生式是A→X1X2…Xk ,可以断言,存在递归推理,断定w=w1 w2 … wk属于A代表的语言。 §4.文法和语言的歧义性 两个推导及语法分析树. E?E+E?E+E*E E?E*E?E+E*E 另两个推导及语法分析树. E?E+E?I+E?a+E ?a+I?a+b E?E+E?E+I?I+I?a+I?a+b 歧义文法.说G=V,T,P,S是歧义的, 如果存在w,和两棵不同的语法分析树, 它们的根都为S,产物都为w。 消除表达式文法的歧义性 思想 引入运算符的优先级。 同级运算符引入结合性。 方法.引入不同变元,每个变元代表 相同级别运算符构成的表达式。 文法 I→a|b|Ia|Ib|I0|I1 F→I|(E) T→F|T*F E→T|E+T 无歧义性说明 从T推导出的串一定是一个或多个*连接的因子。 T为根的语法分析树只能如图所示。 同理, E为根的语法分析树形式也只能如图所示(T,F,*分别改为E,T,+)。 §4.文法和语言的歧义性 不存在算法,判定任意CFG是否是歧义文法。 定理. 对任何CFG G=V,T,P,S和w∈T*,w有两棵不同的语法分析树?w有两个不同的最左推导。 存在CFL,它的所有文法都是歧义文法。
文档评论(0)