网站大量收购独家精品文档,联系QQ:2885784924

第2章 文法和语言及基本知识.ppt

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

学习本章目的 学生通过学习了解高级程序语言的一些基本概念及其分类。以及语法结构的形式描述问题。 讲授6课时 以板书为主 本章主要讲解的内容为乔姆斯基文法及其分类,文法的二义性判断和证明,上下文无关文法的简化和语法树。 重点与难点 本章重点就是二义性判断和转化以及高级语言文法的内容。 文法分类是难点 作业 P32 2题 3题 5题 7题 8题 9题 10题 思考题 1设计一个文法,定义一个已知语言 2分析已知语言的句子结构特征设计相应的一组规则,但不唯一。 3设计的文法必须能定义已知语言的结构特征,不能扩大或者缩小范围。 定义某程序语言条件语句的文法G为 S→ if b S |if b S else S |A (其他语句) 试证明该文法是二义性的并消除之。 分析 该文法的句子 if b if b A else A 对应两棵不同的语法树,所以该文法是二义性的。 例2.15: 复合if语句的两棵语法语法树 if A S S b else S if b S A (b) S if b S A S if b else S A (a) 消除文法的二义性可采用下面两种方法。 (1) 不改变已有规则,仅加进一些非形式的语法规定:else与前面最接近的不带else的if相对应,消除二义性后如图(a)。 (2) 改写文法G为G′: S→S1|S2 S1→if b S1 else S1|A S2→if b S|if b S1 else S2 这是因为,通过分析得知引起二义性的原因是if-else语句的if后可以是if型,因此改写文法时规定if和else之间只能是if-else语句或其他语句。消除二义性后如图: S2 if b S S1 If b S1 else S1 A A §2.5 文法和语言的分类 著名的语言学家乔姆斯基(Chomsky)将文法和语言分为四大类,即0型、1型、2型、3型。 划分的依据是对文法中的规则施加不同的限制。 0型文法(无限制文法) 若文法G=(VN ,VT,P,S)中的每条规则α→β是这样的一种结构: α?(VN U VT)* 且至少含一个非终结符,而β?(VN U VT)*则称G是0型文法。0型文法描述的语言是0型语言。0型文法又称为无限制性文法,语言称为无限制性语言。 例如:有0型文法G=( VN ,VT,P,S),其中 VN = { A,B,S} VT= { 0, 1} P={ S→0AB 1B→0 B→SA|01 A1→SB1 A0→SOB1} 其描述的0型语言为L0(G[S])={}。 1型文法(上下文有关文法) 若文法G=(VN,VT,P,S)中的每一条规则的形式为αAβ →αuβ,其中A∈VN, α,β∈(VN∪VT)*,u∈(VN∪VT)+,称G是1型文法,1型文法描述的语言是1型语言。又称1型文法为上下文有关文法,相应的语言又称为上下文有关语言。 例如: 有1型文法G=(VN,VT,P,S),其中 VN={S,A,B} VT={a,b,c} P={S→aSAB|abB BA→BA′ BA′→AA′ AA′→AB bA→bb bB→bc cB→cc} 其描述的1型语言为L1(G[S])={anbncn | n≥1}。 2型文法(上下文无关文法) 若文法G=中的每一条规则的形式为A→β,其中A∈VN, β∈(VN∪VT)*,则称G是2型文法,2型文法描述的语言是2型语言。又称2型文法是上下文无关文法,其产生的语言又称为上下文无关语言。通常定义程序设计语言的文法是上下文无关文法。 例如,有2型文法G=(VN,VT,P,S),其中 VN={S,A,B} VT={a,b} P={ S→aB| bA A→a| aS| bAA B→b|bS|aBB} 其描述的语言为L2(G[S])={χ|χ∈{a,b}+且χ中a和b个数相同}。 3型文法(正规文法) 若文法G=(VN,VT,P,S)中的每一条\规则 ★ 注意推导和规则的区别:一是形式上的区别,推导用“=”表示,规则用“→”表示;二是对文法G中任何规则A→a,有A=,即推导的依据是规则。 2、推导 如果存在一个直接推导序列: a0 = a1 = a2 = … = an 则称这个序列是一个从a0至an的长度为n的推导

文档评论(0)

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

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

1亿VIP精品文档

相关文档