形式语言03章无关文法与无关语言.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 上下文无关文法与上下文无关语言 上下文无关文法的重要性: 拥有足够强的表达力来表示大多数程序设计语言的语法 可以构造有效的分析算法来检验一个给定的字符串是否是由某个上下文无关文法产生。 上下文无关语言在实践中有重要意义: 1)定义程序设计语言: BNF(巴克斯-诺尔范式); 2)描述文档格式: XML,HTML; 3)使语法分析概念形式化; 4)简化程序设计语言的翻译: 语法分析器的设计; 给定文法G,如果对于G中的任意产生式ν→ω,而ν只是一个非终结符,即A→ω,A∈V,ω∈(∑UV)*,则称文法G为上下文无关文法(简称无关文法)。如果一个语言能由一个无关文法产生,则称这个语言是上下文无关语言(简称无关语言)。 定义3-1 线性的无关文法 若无关文法G=(∑,V,S,P) 的 所有产生式都是下列形式之一: A→uBv 或 A →w; 其中:A,B∈V;u,v∈∑+;w∈∑*。 该文法称为线性的无关文法。 注意: u,v可以有一个为空串ε 。 特别地, 如果u=ε,称为左线性的(无关)文法; 如果v=ε,称为右线性的(无关)文法。 从定义可以看出,线性的无关文法是受限制的无关文法;本身一定还是无关文法。 化简的上下文无关文法 左线性文法和右线性文法是线性文法中 特殊的两类。 定理3-2 G=(∑,V,S,P)是一个上下文无关文法,产生式的一般形式为A→w,其中: w∈(∑UV)* , 则存在另一个等价的线性的无关文法G1,而G1中产生式的形式为; A→a 或 A→aβb。 其中: A∈V;a,b∈∑U{ε} ;β∈V+。 证明: 读者自己完成。 定理3-3 G=(∑,V,S,P)是一个上下文无关文法,产生式的一般形式为A→w,其中:w∈(∑UV)*,则存在另一个等价的无关文法G1,而G1中产生式的形式为; A→a 或 A→aB 或 A→aBC。 其中:A ,B,C∈V;a∈∑ {ε} 。 证明: 读者自己完成。 3.1 消除无关文法中的无用非终结符号 定义3-4 文法中的无用符号 一个无关文法G,符号Y∈V,如果不出现在任何形如S=*uYv=*uwv的推导之中,称Y为文法G的无用非终结符。 其中:u ,w ,v ∈∑*。 反之,一个无关文法G,符号Y∈V,如果能够出现在某个形如S=*uYv=*uwv的推导之中,称Y为文法G的有用非终结符。其中:u ,w ,v ∈∑*。 从定义可知:有用非终结符,必须同时满足两个条件 (1) 从它开始推导,能够产生终结符号串; (2) 它必须出现在某个句型中; 判断某个符号是有用非终结符,就应该从这两方面同时进行考虑。 有用非终结符的判断算法: 略。 定义3-7 无用的产生式 如果一个产生式中(产生式的左边或右边)包含有无用的非终结符,则该产生式就是无用的产生式。可以将无用的产生式从文法中删除掉。 问题3-8 文法产生的语言是否为空? 一个无关文法G,产生的语言为L(G),而L(G)是否为空(即空集Ф),是可以判定的。 注意: 一个语言包含有空串ε或语言本身就是{ε},它们都不是空集Ф。 判定方法: ①首先使用空串定理,消除该无关文法中的所有空串产生式,如果还有S→ε,则该文法产生的语言不为空; (2)构造能产生终结符串的非终结符集合N,如果S ∈ N,则该文法产生的语言不为空。否则,该文法产生的语言为空。 定理3-11 已知产生一个非空语言的上下文无关文法G,则对于某个A ∈ V,总有A=*w,且w∈∑*。 证明: 读者自行完成。 定理3-12 一个无关文法G=(∑,V,S,P),产生的语言为L(G)。如果L(G)不为空,则至少存在一个非终结符A,而它的产生式右边仅仅只包含终结符号或空串ε 。 证明提示: 考虑产生串的推导过程中最后使用的产生式的特点。 证明: 读者自行完成。 定理3-13 已知产生一个非空语言的上下文无关文法G=(∑,V,S,P),则能够构造一个等价的无关文法G1,对于任意A ∈ V,总有一个推导:S=*w1Aw3=*w1w2w3,且w1,w2,w3 ∈∑*。 证明: 读者自行完成。 定理3-14 已知产生一个非空语言的上下文无关文法G=(∑,V,S,P),则文法中的每个非终结符都是有用的;即:若A∈V,则 S=*uAv=*uwv 其中:u ,w ,v ∈∑*。 证明: 读者自行完成。 问题3-15 上下文无关语言CFL是否有穷是否可以判定? 上下文无关文法CFG生成无穷个句子的原理是利用递归的产生式,即 S=*uAy=*uvAxy=*…=*uviAxiy=*uviwxiy 根据着一原

文档评论(0)

精品资料 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档