编译原理学习笔记.pdfVIP

  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文档。上传文档
查看更多
本份资料是 03 软件学习委员按照老师上课复习的时候给我们讲的一些考试重点考点, 和我看书上网查资料等总结出来的一份复习笔记,一些是自己总结出来的方法, 有一些考点 这份笔记没有覆盖到,请大家补充.严重声明:仅是个人的理解,如果有错请高手们指出, 以免误 人,谢谢……如果大家有什么不明,可以共同探讨… 几种文法的区分: 文法分为四类: (1)短语文法(0 型文法) (2)上下文相关文法(1 型文法) (3)上下文无关文法(2 型文法) (4)正规(则)文法(3 型文法) 上面四种文法有包含的关系,1 型文法是0 型文法的一个子集,2 型文法是1 型 文法的一个子集,,3 型文法是2 型文法的一个子集。 短语文法 上下文相关文法 上下文无关文法 正规 左线性 右线性 一些判断和排除的技巧: 1. 正规文法右边只有一个非终止符, eg: S  AB 可排除此文法是正规文 法. 2. 区分上下文相关文法和上下文无关文法的情 : 看左端有几个非终止符, 如果不只一个,则该文法不是上下文无关文法. AB  a 可排除上下文相 关文法, A a 则可能是上下文无关文法. 3. 对于S  若其他推导式中S 不出现在其他产生式的右边,不影响正规文 法要求,若出现在右边,则是短语文法. eg: B  cB 则一定是短语文法. 4. A  aB 或者 A  a 则属于右线性文法, A  Ba 或A  a 属于左线性文 法.若一个文法有型如A  aB 又有A  Ba 的推导式,则排除该文法最多 是正规文法. 给出文法 用最左或最右推导句子建立推导树 例: 已知文法G: E-E+T|E-T|T T-T*F|T/F|F F-(E)| 试给出下述表达式的推导及语法树 (1)i; (2)i*i+ (3)i+i* (4)i+(i+i) [答案] (1)E=T=F= (2)E=E+T=T+T=T*F+T=F*F+T=i*F+T=i*i+T=i*i+F=i*i+ (3)E=E+T=T+T=F+T=i+T=i+T*F=i+F*F=i+i*F=i+i* (4)E=E+T=T+T=F+T=i+T=i+F=i+(E)=i+(E+T)=i+(T+T)=i+(F+T) =i+(i+T)=i+(i+F)=i+(i+i) 给出语言 写出文法 (题型可参照书本p39 2 -2) n n m 例: 给出语言{ a b c | n=1,m=0}的上下文无关文法。 解: 基本思路是这样的: n n m 要求符合a b c ,因为a 与b 要求个数相等,所以把它们应看作一个整体 单元进行,而cm 做为另一个单位,初步产生式就应写为S-AB,其中A 推出 n n m a b ,B 推出c 。因为m 可为0 ,故上式进一步改写为S-AB|A。接下来考虑 A,凡是要求两个终结符个数相等的问题,都写为A-aAb|ab 形式,对于B 就很 容易写成B-Bc|c 了。 构造上下文无关文法如下: S-AB|A A-aAb|ab B-Bc|c 证明文法的二义性(题型可参照书本p40 2-10,方法用老师给的方法) 基本思路:找出一个句子,证明它可从两种推导方式得到相同的推导结果即可. 例:证明下面文法具有二义性. S-aB|bA B-bS|aBB|b A-aS|bAA|a 找出一句子aabbab 有两种不同的推导。 S = aB=aaBB=aabB=aabbS=aabbaB=aabbab S=aB=aaBB=aabSB=aabbAB=aabbaB=aabbab 即它可以产生两棵不同

文档评论(0)

137****6622 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档