编译原理第4章习题答案.pptxVIP

  1. 1、本文档共19页,可阅读全部内容。
  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文档。上传文档
查看更多
编译原理习题答案-第4章;4.2.1 考虑上下文无关文法: 以及串 1)给出这个串的一个最左推导。 2)给出这个串的一个最右推导。 ;3)给出这个串的一棵语法分析树。 4)这个文法是否为二义性的?证明你的回答。 该文法不是二义性的。因为对于文法产生的每一个符号串,不存在两棵不同的分析树(或两种不同的最左或最右推导)。 5)描述这个文法生成的语言。 以a为变量,+和*为二元操作符的后缀表达式的集合;4.2.2 3)考虑上下文无关文法: 以及串 (()())。 1)给出这个串的一个最左推导。 2)给出这个串的一个最右推导;3)给出这个串的一棵语法分析树。;4)这个文法是否为二义性的?证明你的回答。 该文法是二义性的文法。 如串 ()() 对应着两棵不同的语法分析树。 5)描述这个文法生成的语言。 括号的匹配,包括空串。;4.2.3 为下面的语言设计文法: 1)所有由0和1组成的并且每个0之后都至少跟着一个1的串的集合。 2)所有由0和1组成的回文的集合,也就是从前面和从后面读结果都相同的串的集合。 3)所有由0和1组成的具有相同多个0和1的串的集合。 ;4)所有由0和1组成的并且0的个数和1的个数不同的串的集合。 S ? A| B A ? AA | E0E (A是0比1多的串) B ? BB | E1E (B是1比0多的串) E ? 0E1E | 1E0E | ? (E是0和1的个数相等的串) 5)所有由0和1组成的且其中不包含子串011的串的集合。 6)所有由0和1组成的形如xy的串的集合,其中 且x和y等长。 S ? AB | BA A ? XAX | 0 (A是奇数长度,中间为0的串) B ? XBX | 1 (B是奇数长度,中间为1的串) X ? 0 | 1;4.3.1 下面是一个只包含符号a和b的正则表达式的文法。它使用+替代表示并运算的字符“|”,以避免和文法中作为元符号使用的竖线相混淆: 1)对这个文法提取左公因子。;2)提取左公因子的变换能使这个文法适用于自顶向下的语法分析技术吗? 不可以。文法中依然存在左递归。 3)提取左公因子之后,从原文法中消除左递归。 4)得到的文法适用于自顶向下的语法分析吗? 适用。因为文法中不存在左公因子,也不存在左递归。;4.3.2 1) S- SS+|SS*|a a.提取左公因子:S-SSA|a A-+|* b.提取左公因子的变换能使这个文法适用于自顶向下的语法分析技术吗? 不可以。文法中依然存在左递归。 c.消除左递归:S-aS’ S’-SAS’|? A-+|* d.得到的文法适用于自顶向下的语法分析吗? 适用。因为文法中不存在左公因子,也不存在左递归 ;4.4.3 S-SS+|SS*|a FIRST(S)={a} 因为S是起始符号,把{$}加入到Follow(S)中。 对于S-SS+的第一个S,把First(S+) = {a}加入到Follow(S)中。 对于S-SS*的第一个S,把First(S*) = {a}加入到Follow(S)中。 对于S-SS+的第二个S,把First(+) = {+}加入到Follow(S)中。 对于S-SS*的第二个S,把First(*) = {*}加入到Follow(S)中。 所以,FOLLOW(S)={a,+,*,$} 仅消除左递归后的文法: FIRST(S)={a} ,FIRST(S)={a,?} FOLLOW(S)=FOLLOW(S)={+,*,$} ;S-aS’ S’-aS’AS’|? A-+|*; A ? A? | ? 改写为 A ? ? A? A?? ? A? | ? ;预测分析表;仔细分析后,发现该文法 S-S(S)S| ? 是二义性文法。 二义性文法不可能是LL(1)??法。 例如:( ) ( );“句柄”是和某个产生式 体匹配的子串,对它的 归约代表了相应的最右 推导的一个反向步骤。;4.5.3 对于下面的输入符号串和文法,说明相应的自底向上语法分析过程。 1)文法: 输入串:000111 自底向上语法分析过程:;2)文法: 输入串:aaa*a++ 自底向上语法分析过程:

文档评论(0)

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

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

1亿VIP精品文档

相关文档