编译原理第三章答案.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  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文档。上传文档
查看更多
第 3 章 文法和语言 第 1 题 文法 G=({A,B,S},{a,b,c},P,S)其中 P 为: S→Ac|aB A→ab B→bc 写出 L(G[S])的全部元素。 答案: L(G[S])={abc} 第 2 题 文法 G[N]为: N→D|ND D→0|1|2|3|4|5|6|7|8|9 G[N]的语言是什么? 答案: G[N]的语言是 V+。V={0,1,2,3,4,5,6,7,8,9} N=ND=NDD.... =NDDDD...D=D......D 或者:允许 0 开头的非负整数? 第3题 为只包含数字、加号和减号的表达式,例如 9-2+5,3-1,7等构造一个文法。 答案: G[S]: S-S+D|S-D|D D-0|1|2|3|4|5|6|7|8|9 第 4 题 已知文法 G[Z]: Z→aZb|ab 写出 L(G[Z])的全部元素。 答案: Z=aZb=aaZbb=aaa..Z...bbb= aaa..ab...bbb L(G[Z])={anbn|n=1} 第 5 题 写一文法,使其语言是偶正整数的集合。 要求: (1) 允许 0 打头; (2)不允许 0 打头。 答案: (1)允许 0 开头的偶正整数集合的文法 E→NT|D T→NT|D N→D|1|3|5|7|9 D→0|2|4|6|8 (2)不允许 0 开头的偶正整数集合的文法 E→NT|D T→FT|G N→D|1|3|5|7|9 D→2|4|6|8 F→N|0 G→D|0 第 6 题 已知文法 G: 表达式::=项|表达式+项 项::=因子|项*因子 因子::=(表达式)|i 试给出下述表达式的推导及语法树。 (5)i+(i+i) (6)i+i*i 答案: (5) 表达式 =表达式+项 =表达式+因子 =表达式+(表达式) =表达式+(表达式+项) =表达式+(表达式+因子) =表达式+(表达式+i) =表达式+(项+i) =表达式+(因子+i) =表达式+(i+i) =项+(i+i) =因子+(i+i) =i+(i+i) (6) 表达式 =表达式+项 =表达式+项*因子 =表达式+项*i =表达式+因子*i =表达式+i*i =项+i*i =因子+i*i =i+i*i 表达式 表达式 + 项 因子 表达式 表达式 + 项 因子 i 项 因子 i 项 因子 i ( ) 表达式 表达式 + 项 项 * 因子 因子 i 项 因子 i i 第 7 题 证明下述文法 G[〈表达式〉]是二义的。 〈表达式〉=a|(〈表达式〉)|〈表达式〉〈运算符〉〈表达式〉 〈运算符〉=+|-|*|/ 答案: 可为句子 a+a*a 构造两个不同的最右推导: 最右推导 1 〈表达式〉 〈表达式〉〈运算符〉〈表达式〉 〈表达式〉〈运算符〉a 〈表达式〉* a 〈表达式〉〈运算符〉〈表达式〉* a 〈表达式〉〈运算符〉a * a 〈表达式〉+ a * a a + a * a 最右推导 2 〈表达式〉 〈表达式〉〈运算符〉〈表达式〉 〈表达式〉〈运算符〉〈表达式〉〈运算符〉〈表达式〉 〈表达式〉〈运算符〉〈表达式〉〈运算符〉 a 〈表达式〉〈运算符〉〈表达式〉 * a 〈表达式〉〈运算符〉a * a 〈表达式〉+ a * a a + a * a 第 8 题 文法 G[S]为: S→Ac|aB A→ab B→bc 该文法是否为二义的?为什么? 答案: 对于串 abc (1)S=Ac=abc (2)S=aB=abc 即存在两不同的最右推导。所以,该文法是二义的。 或者: 对输入字符串 abc,能构造两棵不同的语法树,所以它是二义的。 第 9 题 考虑下面上下文无关文法: S→SS*|SS+|a (1)表明通过此文法如何生成串 aa+a*,并为该串构造语法树。 (2)G[S]的语言是什么? 答案: (1)此文法生成串 aa+a*的最右推导如下 S=SS*=SS*=Sa*=SS+a*=Sa+a*=aa+a* (2)该文法生成的语言是:*和+的后缀表达式,即逆波兰式。 S A c a b S a B b c S S S * S S + a a a 第 10 题 文法 S→S(S)S|ε (1) 生成的语言是什么? (2) 该文法是二义的吗?说明理由。 答案: (1) 嵌

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档