第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文档。上传文档
查看更多
第03章文法与语言

第3章 文法和语言 3.1 文法的直观概念 3.2 符号和符号串 3.2.2 基本运算 3.3 文法和语言的形式定义 3.4 文法类型 3.5 上下无关文法及其语法树 3.6 句型分析 3.6.1 自上而下的分析方法 3.6.2 自下而上的分析方法 3.7 文法在实用中的一些说明 文法分类是对规则形式逐步加以限制而得。换言之,从0型文法到1型文法、2型文法和3型文法,其规则形式逐步简单。自然,其表达力也随之逐步减弱。 如果L0、L1、L2和L3分别是0型文法、1型文法、2型文法和3型文法能产生的语言之集,则有如下关系: L0 ? L1 ? L2 ? L3。 在《编译原理》里,仅仅涉及到2型文法和3型文法的使用。后面,也仅仅继续讨论2型文法(或3型文法)的有关内容。 目录 上下无关文法一个显著特征是规则左部一定有且仅有一个非终结符。利用这个特征,可以不列出VN和VT ,给出一个上下无关文法的简洁描述方法:①文法名G改写成G[S],其中,S表示开始符;②规则集P,仅书写其具体规则。 如,例3.7定义的文法G6,简化描述如下。 G6[S]: S→A0︱BS0 A→0︱1 B→0︱1 VN={S,A,B} VT ={0,1} 目录 如果在推导的每一步总是选择当前句型的最左(最右)非终结符进行推导,则称这种推导过程为最左(最右)推导。最右推导,也叫规范推导。由规范推导所得的句型,叫做规范句型。规范推导的逆过程,叫做规范归约。 定义3.8(最左推导、最右推导) 例3.8 已知文法如下,试给出了句子aabbaa的推导过程。 G[S]:S→aAS︱a A→SbA︱SS︱ba 最左推导:S ? aAS ? aSbAS ? aabAS ? aabbaS ? aabbaa 最右推导:S ? aAS ? aAa ? aSbAa ? aSbbaa ? aabbaa 一般推导:S ? aAS ? aSbAS ? aSbAa ? aabAa ? aabbaa 假设文法G=(VN,VT,P,S),则文法G的语法树是一个满足下列条件的多叉树: (1)以文法开始符S做为树根; (2)以终结符号或非终结符号做为树的其他结点,且子树根和其孩子结点分别是某规则的左部和右部。 定义3.9(语法树) S A a S S a a b A b a 例如,例3.8定义的文法G[S],句子aabbaa对应的语法树如下。 推论: ①非叶子结点一定是非终结符 ②全部叶子结点组成的符号串是文法的句型 例3.8 定义文法G[S]:    G[S]:S→aAS︱a  A→SbA︱SS︱ba 推论 ① 如果文法是无二义性的,一个句子的语法树反映了该句子的全部推导过程;② 如果文法是无二义性的,一个句子的最左(最右)推导是唯一的。 定义3.10(语法二义性 ) 如果一个文法G,某个句子存在对应的至少两棵不同的语法树,则称文法G是二义性的。 例3.9 已知文法G[E]:E→E+E︱E*E︱i ,证明G是二义性的。   证明: ∵句子i+i*i存在下列两棵不同的语法树 E + E E E * E i i i E * E E E + E i i i ∴ 文法G[E]是二义性的文法 如果一个语言不存在无二义性的文法,则称该语言是先天二义性的。 例如,语言L={aibjck︱(i=j 或i=k),(i,j,k≥1)}不存在无二义性的文法,是先天二义性的语言。 文法的二义性,并不等同于语言的二义性,尽管两者之间可能存在非必然的联系。 因为二义性文法G,可能存在与之等价的无二义性的文法G′,即L(G)=L(G′)。 已经证明:文法的二义性判定问题是递归不可解的。即不存在这个判定问题的算法。 假设文法G[S]是语言L之文法,即L(G)=L,则“符号串α是否符合语言L的语法问题” 被等价地转化成“推导或归约问题”,即: 这样,自然地形成了推导法和归约法两大类分析方法。推导法和归约法,也分别称为自上而下的分析方法和自下而上的分析方法。 S ?α∧α∈VT * * 目录 这种分析方法在进行每步推导时,存在两个选择问题: ⑴ 选择句型中哪一个非终结符进行推导 ⑵ 选择非终结符的哪一个规则进行推导 问题⑴可以采用最左推导解决。问题⑵通常需要穷举每一个规则的可能推导。即: 一旦寻找到一个符号串α之推导过程,便结束穷举过程,断定符号串α是句子。 只有当穷举全部可能的推导,而没有一个符号串α之推导过程的时候,才可以断定符号串α不是句子。 例3.10 以下列文法G[S]为例,说明推导法的思想。 (1)输入串cabd的推导过程示意 。 (2)输入串cabc的推导过程示意 。 显然,

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档