文法与语言详解课件.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

编译原理CompilerPrinciples2013年9月闫雷鸣

第二章文法与语言讨论问题:文法和语言的概念和定义文法和语言的分类文法等价变换句型分析

简单回顾对程序的理解程序是计算机执行的一系列指令;程序是计算任务的处理对象和处理规则的描述。?对程序设计语言的理解程序设计语言是程序的书写规范;程序设计语言的要素:一组记号(符号)和一组规则。程序设计语言程序是程序设计语言之符号集合上的、按一定规则组成的符号串。

?语言是一切句子的集合;程序设计语言是一切程序的集合;把程序看做程序设计语言的句子。?程序是(程序设计)语言的句子?如何系统地构造程序?或者,一般地,如何为一个(程序设计)语言生成句子?

2.1符号串与符号串集合语言实际上是一个符号串集合;文法规定语言中句子的构造规则。句子是一个语言之字母表上按一定规则构造的符号串。2.1.1字母表字母表:有穷非空的符号集合。例A={a,b,c}∑={0,1}C语言字母表={字母,数字,界限符}不同的语言有不同的字母表。字母表上的元素(即符号)组成符号串。

符号串:1.符号串及其长度符号串:由字母表上的符号所组成的有穷序列。字母表A={a,b,c}上的符号串:a,b,c,ab,ba,aaa,aab,baa,abcab,ε(空串)注意:顺序是重要的,ab≠baC语言字母表上的符号串?长度:|aabcaca|=7|ε|=0

2.子符号串若u=xvy,其中|v|≠0(|u|=|v|)则v是u中的子符号串。(非空符号串)例a+(b-c)/d中的子符号串3.符号串的头与尾(前缀、后缀)abc的头:a,ab,abc,?x=t…abc的尾:c,bc,abc,?x=…t

4.对符号串的运算联结(或并置):x=aby=baxy=abbayx=baab对任何符号串x,有?x=x?=x。方幂:x=nxx…x(x自身联结n次)xn=xn-1x=xxn-1x0=?x3=(ab)3=ababab|=0|xy|=|x|+|y||xn|=n|x||x0

符号串集合(语言)1.符号串集合的定义1)它是一切元素都是某字母表上的符号串的集合。2)表示法枚举法{1,11,111,1111}省略法{1,11,111,1111,┅}描述法{1|i≥1}或{x|x全由1组成,|x|≥1}i注意:一定不能涉及含义,如{x|x=∑10}。i

字母表∑上的一个语言就是∑上的一些符号串组成的集合。空集ф是一个语言,仅含一个空符号串集合{ф}也是一个语言。特别需要指出的是,?和{?}是不同的语言。

2.对符号串集合的运算乘积:AB={xy|x∈A且y∈B}{1,0}{a,b,c}=?对任何符号串x有?x=x?=x,A={ε}因此,{?}A=A{?}=A,但?A=A?=?。0方幂:An=AA…A(n个A乘积)An=AA=AAn-1n-1n特例,字母表A的方幂,x∈A,|x|=n{1,0}=?{1,0}=?3n

3.字母表的闭包与正闭包*闭包A=A0∪A1∪┅∪A∪┅n{0,1,2}*正闭包A=A∪┅∪A+1n∪┅=A*-{?}{0,1,2}+*x∈A+,|x|=1x∈A,则|x|=0任何一个语言是其字母表之正闭包的真子集。如何找出此真子集?或说,如何找出其句子?

2.2文法与语言的形式定义2.2.1文法的形式定义1.重写规则(产生式规则)定义:有序对(U,u)或U::=uA→α(或A::=α)其中,A是一个符号,称为产生式规则的左部,而α是有穷非空符号串,称为产生式规则的右部,“→”和“::=”表示“定义为”或“由……组合成的”或“生成”,其含义是左部符号用右部的符号串定义或左部符号生成右部符号串。产生式规则可合写,如:A→α和A→β可写为A→α|β

1.重写规则(产生式规则)规则表示法:通常的E::=E+TE::=T或E::=E+T|T扩充的E::=T{+T}术语:非终结符号,非终结符号集VN终结符号,(不会出现在规则左部)终结符号集VT(V∩V=?V=V∪V)NTNT单规则:右部是单个非终结符

{}用于指定重复次数标识符::=字母{字母数字}0[]内中符号至多出现一次整数::=[+|-]数字{数字}()提公因子5E::=E+T|E-T可改写为E::=E(+|-)T

规则构造的例子C语言标识符的规则:标识符::=字母下划线标识符::=标识符字母下划线标识符::=标识符数字字母下划线::=A|…|Z字母下划线::

您可能关注的文档

文档评论(0)

133****6142 + 关注
官方认证
文档贡献者

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

认证主体成都美鑫可研科技文化有限公司
IP属地四川
统一社会信用代码/组织机构代码
91510100MADHJ0RX18

1亿VIP精品文档

相关文档