《编译原理复习》.docVIP

  1. 1、本文档共37页,可阅读全部内容。
  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文档。上传文档
查看更多
1.已知有限自动机如图 (1)以上状态转换图表示的语言有什么特征 (2)写出其正规式. (3)构造识别该语言的确定有限自动机DFA. [答案] 至少含有两个连续的1的0,1组合 (2) (0∣1)*11(0∣1)* (3) ? 0 1 A A AB AB A ABC ABC AC ABC AC AC ABC 重新命名,令AB为B、ABC为C、AC为D。 ? 0 1 A A B B A C C D C D D C DFA: 1 1 A B 0 0,1 C 0 1 2.试构造与下列文法G[S]等价的无左递归文法。 G[S]: S→Sa∣Nb∣c N→Sd∣Ne∣f [答案] S→Sa∣Nb∣c N→Ne∣Sd∣f 消除N→Ne∣Sd∣f左递归: N→SdN’∣f N’ ③ N’→eN’∣ε ④ 代入S→Sa∣Nb∣c: S→Sa∣SdN’b∣fN’b∣c 消除S→Sa∣SdN’b∣fN’b∣c左递归: S→fN’bS’∣cS’ ① S’→aS’∣dN’bS’∣ε ② 3.考虑下面文法G1: S→a∣∧∣(T) T→T, S∣S 消去G1的左递归。然后对每一个终结符,写出不带回溯的递归子程序。 [答案] S→a∣∧∣(T) T→ST’ T’→, ST’∣ε Void match(token t) { if (lookahead==t) lookahead=nexttoken; else error( ); } void S( ) { if (lookahead==’a’) match(‘a’); else if (lookahead==’^’) match(‘^’); else if (lookahead==’(’) { match(‘(’); T( ); if (lookahead==’)’) match(‘)’); else error( ); } else error( ); } void T( ) { S( ); T’( ); } void T’( ) { if (lookahead==’,’) { match(‘,’); S( ); T’( ); } } 4.设有以下文法: G[S]: S→eEfGh | g E→FSG | h F→SEc | cG | ε G→Sh |ε (1) 求出该文法每一个非终结符的FOLLOW集。 (2) 它是LL(1)文法吗?为什么? [答案] (1) FIRST(S)={e,g} FOLLOW(S)={#,e,g,h,c,f} FIRST(E)={h, c,e,g, ε} FOLLOW(E)={f,c} FIRST(F)={c,e,g, ε} FOLLOW(F)={e,g} FIRST(G)={e,g, ε} FOLLOW(G)={h,f,c,e,g} (2) e f g h c # S S→eEfGh S→g E E→FSG E→εSG E→FSG E→h E→FSG E→εSG F F→SEc F→ε F→SEc F→ε F→cG G G→Sh G→ε G→ε G→Sh G→ε G→ε G→ε 不是LL(1)文法 5.设有文法:G[S]: S→aBc | bAB A→aAb | b B→b | ε 构造其LL(1)分析表,并分析符号串baabbb是否是该文法的句子。 [答案] FIRST(S)={a,b} FOLLOW(S)={# } FIRST(A)={a, b } FOLLOW(A)={b,#} FIRST(B)={b, ε} FOLLOW(B)={c,#} a b c # S S→aBc S→bAB A A→aAb A→b B B→b B→ε B→ε 步骤 下推栈 输入串 动作 查分析表 1 #S baabbb# pop(S),push(bAB) S→bAB 2 # BAb baabbb # pop(b), next(ip) 匹配b 3 # BA aabbb# pop(A),push(aAb) A→aAb 4 # BbAa aabbb # pop(a), next(ip) 匹配a 5 # BbA abbb# pop(A),push(aAb) A→aAb 6 # BbbAa abbb # pop(a

文档评论(0)

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

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

1亿VIP精品文档

相关文档