编译原理3文法和语言.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文档。上传文档
查看更多
编译原理3文法和语言

第三章 文法和语言 3.1 文法的直观概念 3.2 符号和符号串 3.3 文法和语言的形式定义 3.4 文法的类型 3.5 上下文无关文法及其语法树 3.6 句型分析 语言和文法 为什么关心文法问题? 为语言的描述寻求一种工具(以确定什么样的句子属于该语言)。穷举法是不合适的(原因?)。提供有限的描述语言特性的法则—文法 要对程序设计语言给出精确无二义的语法描述,严谨、简洁、易读 形式化工具 “形式化”是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述,形式化很像是数学的符号化 文法的直观概念 以自然语言为例,人们罗列出所有的句子是不现实的,但人们可以给出一些规则,用它们来说明或定义句子合理的组成结构 这里采用前面介绍过的EBNF来如下简单地表示自然语言中句子的构成规则: 句子::=主语谓语 主语::=代词|名词 代词::=我|你|他 文法的直观概念 名词::=王明|大学生|工人|英语| 谓语::=动词直接宾语 动词::=是|学习 直接宾语::=代词|名词 符号和符号串 语言离不开符号的使用 字母表: 字母表是符号的非空有穷集合,因此,字母表也可称为符号集 不同的语言可以有不同的字母表 符号串: 由字母表中的符号组成的任何有穷的符号序列称为符号串 符号串及若干相关运算 符号串的头尾,固有头和固有尾: 如果z=xy是一个符号串,那么称x是z的头,y是z的尾;如果x是非空的,那么y称为固有尾;同样,如果y非空,那么称x是固有头 例,对于z=abc,那么z的头是?, a, ab, abc,除abc外,其他都是固有头;z的尾是?, c, bc, abc,z的固有尾是?, c, bc 求符号串长度: 如果某符号串x中有m个符号,则称其长度为m,并表示为|x|=m 例,|001110|=6 符号串上的运算 符号串的连接: 设x和y是符号串,它们的连接xy是把y放在x之后得到的符号串 显然,?x=x?=x;|xy|=|x|+|y| 符号串的方幂: 把x连接n次得到的符号串,如z=x???x,写作z=xn 例,x0=?,x1=x等等;如果x=AB,则x2=ABAB 字符串集合: 如果集合A中的元素都是某字母表上的符号串(符号串的集合),则称A为该字母表上的符号串集合 符号串上的运算 符号串集合A和B的乘积: AB={xy|x?A, y?B} 对字母表?,以?*表示?上所有有穷长的串的集合;它称为集合?的闭包;?+称为?的正闭包 例,设?={0, 1},则?*={?, 0, 1, 00, 01, 10, 11, …},它也可表示为: ?*= ?0? ?1?… ?n?… 文法定义 定义: 文法G为四元组(VN, VT,, P, S) 其中,VN,VT和P都是非空有穷集。具体地,VN是非终结符号(或语法实体,或语法变量)集;VT终结符号集;P是规则的集合 S是称作识别符号或开始符号的一个非终结符,它至少要在一条产生式中作为左部出现 VN和VT不含公共的元素,即VN∩VT = φ 用V表示VN∪ VT ,称为文法G的字母表或字汇表 规则,也称重写规则、产生式或生成式,是形如?→?或?::=?的(?, ?)有序对,其中?是字母表V的正闭包V+中的一个符号且至少含一个非终结符,?是V*中的一个符号。 ? 称为规则的左部, ? 称作规则的右部 文法定义 例,文法G=(VN, VT, P, S) VN = {S}, VT ={0, 1} P={ S→0S1, S→01 } S为开始符号 文法的写法 元符号: → ::= | 习惯: 大写字母表示非终结符, 小写字母表示终结符 推导的定义 直接推导“?” ?→?是文法G的产生式,若有v,w满足:v=? ? ? ,w=? ? ?,其中?, ??V* 则称v直接推导到w,记作 v?w 也称w直接归约到v 例,有文法G:S→0S1,S→01,可有下面一些推导 0S1 ?00S11 00S

文档评论(0)

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

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

1亿VIP精品文档

相关文档