[工学]文法、和形式语言2.ppt

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

第2章 文法和形式语言 2.1 符号和符号串 2.2 文法和语言 2.3 语法树和二义性 2.4 文法的实用限制 2.5 扩充的BNF 2.6 文法和语言分类 2.7 正则表达式与正则集 例如:对于赋值语句 x:=a+b*c 非形式描述如下: 1)语法:赋值语句有一个变量,后随一个 符号“:=”,再在后跟一个表达式所构成。 2)语义:赋值语句执行的过程是先对语句右部的表达式求值,然后把所得的结果与语句左部变量相结合,并取代该变量的原有值。 3)语用:赋值语句可用来计算和保存表达式的值。 递归规则是对规则左部非终结符号进行的递归定义。 例如:有规则:U::=xUy. 若x=ε,则有 U::=Uy,即为左递归规则。 若y=ε,则有 U::=xU,即为右递归规则。 若x,y≠ε,则有 U::=xUy,即为自嵌入的规则。 递归文法: 在文法中至少有一条递归规则,则称该文法是直接递归的。 结论:若U xUy,则称U为间接递归。 + ? 若x=ε,则称U为间接左递归(U Uy)。 若y=ε,则称U为间接右递归(U xU)。 若x,y≠ε,则U为间接自嵌入。 + ? + ? 总之,文法中存在任一非终结符号,若能建立一个推导过程,在推导所得的符号中又出现了该非终结符本身,则文法是递归的。 递归的文法可以用来用有限的文法定义无限语言,而无递归性的文法只能定义有限的语言。 4.短语、简单短语: 短语与简单短语: 短语:设有文法G[Z],w=xuy是一个句型, 如果有 Z xUy且U u (Z xUy xuy) 则称u是句型w的相对于U的短语。 简单短语:如果有Z xUy且U u (Z xUy xuy) 则称u是句型w的相对于U的简单短语,其中 U∈Vn, u∈V+ 分析:考察v=xUy与w=xuy的关系: 因为U u 所以xYy xuy 于是 Z xUy xuy * ? + ? * ? + ? * ? ? * ? ? + ? + ? + ? * ? 类似地:因为U?u 所以xUy?xuy 于是,Z xUy?xuy * ? u作为短语的条件: Ⅰ)u可以归约到U。 Ⅱ)原句型归约后仍为一个句型。 u作为简单短语的条件: Ⅰ)u可以直接归约到U。 Ⅱ)原句型归约后仍为一个句型。 例如:设有文法G[E]: E::=E+T|T T::=T*F|F F::=(E)|i 求根据定义句型T+i的所有短语和简单短语。 可见,一个句型可以有若干个简单短语,最有用的是最左边的简单短语。 句柄: 句型的最左边的简单短语称为该句型的句柄。如上例中的句型T+i的句柄为T。 由于通过定义来求句型的短语、简单短语和句柄比较麻烦,下面介绍通过语法树来求比较直观。 2.3 语法树和二义性: 1.语法树和推导: 语法树: 设有文法G[Z],满足下列条件的树称为G的语法树: 1)每个结点都是G的某一终结符或非终结符。 2)树根是文法的开始符Z。 3)若某一结点至少有一个从它出来的分枝,则该结点一定是非终结符。 4)若某结点A有n个分枝,其分枝结点为B1,B2,…,Bn,则: A::=B1B2…Bn一定是G的一个规则。 例:设有文法G[S]: S::=aAB A::=Ba|a B::=bd 求其语法树。 推导过程与语法树的生成: 对于句型,根据文法进行推导,这种推导的过程可以用图解来表示,这就是语法树的生成。 例如:对于文法G[N]: N::=ND|D D::=0|1|2|…|9 推导出句子25。 根据上述文法有最左推导: N ND DD 2D 25 ? l ? l ? l ? l 由推导生成的语法树为: N N D 5 D 2 末端结点:指没有分枝向下射出的结点,也常常称为树叶。 如果末端结点都是有终结结点符号组成,则这些结点所组成的符号串组成的符号串为句子,否则为句型。 可见,若推导过程不同,语法树生长的过程也不同,但最终的语法树完全相同。 子树与短语: 子树:语法树的某个结点连同它向下射出的部分组成了语法树的子树。 简单子树:只含有单层分枝的子树称

文档评论(0)

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

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

1亿VIP精品文档

相关文档