北航 计算理论 第三章 文法与语言.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
非确定有限自动机NFA: 为一个五元组 M=(Q, ∑,??, Q0, F), 其中 Q为状态的有限集合 ∑为有限字母表 Q0 ? Q为起始状态集 F?? Q为终止状态集 ?:Q??∑???(Q)是转换函数 例NFA q0 q1 q2 q3 0,1 0,1 1 0,? 1 定义: 对两台自动机M1,M2,如果L(M1) = L(M2),则称M1和M2等价。 定理2: 每一台非确定有限自动机都等价于某一台确定有限自动机。 定理3: 语言是正则的,当且仅当它可以被有限自动机接受。 正则语言的描述局限 不能描述配对或嵌套结构 例 {{…}} BEGIN…END 不能描述重复串 例{wcw | w是由a和b组成的串结构} * 计算理论 第三章 文法与语言 求解问题 与 识别语言 问题抽象为符号串的集合; 符号串称为句子,问题是句子的集合; 求解问题抽象为识别语言。 问题提出: 如何构造可以接受及产生一个语言的计算模型? 语言识别器: 对一个已经存在的字符串集合, 如何判断它就是符合条件的语言? 解决接受的问题。 语言产生器: 怎样产生一个语言? 解决产生的问题。 语言的识别问题: 要让计算机自动识别语言(自然语言或机器语言或程序设计语言),必须先用形式化的方法来表示语言。 文法能清晰描述语言的语法构成,。 文法能自动构造有效的语言识别器。 文法G定义为四元组(V,T,S,P),其中 V 是有限的非终极符集合; T 是有限的终极符集合; S 是开始符,S?T。必须在某个产生式的左边出现一次; P 是产生式的集合,且具有下面的形式: ? ? ?,其中?,??(V ? T )* 文法分类: A,B?V,a?T。对文法中的产生式?→?: O型文法: 短语文法。?中至少含一个非终极符。 1型文法: 上下文有关文法。它是0型文法的特例,要求|?|?|?|(S→?例外,S不得出现于产生式右部)。 2型文法: 上下文无关文法。它是1型文法的特例,要求产生式左部是一个非终极符: A→? 。 3型文法: 正则文法。它是2型文法的特例,要求产生式具有下面形式之一: A→a ,A→aB。 文法的乔姆斯基体系 正则文法 上下文无关文法 上下文有关文法 短语文法 例:某语言有文法G:<字母><数学><标识符>,尖括号指非终极符。终极符T:{0, 1, 2, …, 9, a, b, …, z, A, B, …, Z, _}。P中的产生式有: <数字> ? 0 <数字> ? 1 … <数字> ? 9 <字母>? a <字母>? b … <字母> ? Z 标识符可以形式化地表示为: <标识符> ? <字母> <标识符> ? <标识符><字母> <标识符> ? <标识符><数字> 例:G=({A, B, C, S}, {a, b}, P, S),其中:P中的产生式集合为: S ? AB , S ? BC B ? CC , B ? b C ? AB , C ? a A ? BA , A ? a 试证明给定串baaba∈T*,且S ? * baaba,即是否可以由文法规则推导出该串。 证明:因为baaba串中的每一个字符均属于T,故baaba∈T* S ? BC ? bC ? bAB ? baB ? baCC ? baCa ? baABa ? baaBa ? baaba. 正则文法 定义:一个正则文法G定义为四元组(V, T, S, P,), 其中: V:终极符集合 T:非终极符集合 S: 文法开始符 P:产生式集合,其中的产生式形如: A?a 或 A?aB, a∈T, A,B∈V 正则语言: 正则文法G生成的语言: L(G) = {ω|ω∈T*且S??*ω} 正则语言的识别: 给定正则文法G=(V,T,S,P),任给串ω∈T*,ω是否能被文法G识别。 正则语言的识别算法 即证明是否有S?*?. 证明: 设:ω=a1a2…ai…an, ai∈T 1.若n=1,判断S?a1是否在P中。 2.若n≥2,则只需要判断是否有S?a1B1 有,则往证B1 ? a2…an是否成立。 重复上述过程。 算法描述:从右向左推导 在P中选择右边为串ω的最右字符an,符合条件的产生式左边的非终极符组成一个集合V1,即: V1={A1|A1?an∈P}, 同理:有 V2

文档评论(0)

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

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

1亿VIP精品文档

相关文档