编译原理期末试题(四)附答案-.docVIP

  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文档。上传文档
查看更多
《编译原理》期末试题(四) 从优化的范围的角度,优化可以分哪两类?对循环的优化可以有哪三种? 答:从优化的范围的角度,优化可以分为局部优化和全局优化两类; 对循环的优化有三种:循环不变表达式外提、归纳变量删除与计算强度削减。 2、写出表达式a=b*c+b*d对应的逆波兰式、四元式序列和三元式序列。 答:逆波兰式: abc*bd*+:= 四元式序列: 三元式序列: OP ARG1 ARG2 (1) (*, b, c, t1) (1) (* b, c ) (2) (*, b, d, t2) (2) (* b, d ) (3) (+, t1, t2,t3) (3) (+ (1), (2)) (4) (:=, t3, /, a) (4) (:= (3), a) 3、对于文法G(S): SbM(T S b M ( T M a b L ) 2) 短语: Ma), (Ma), b(Ma)b 直接短语: Ma) 句柄: Ma) 设有字母表{a,b}上的正规式R=(ab|a)*。 解:(1) 0 0 1 2 3 b a a ε ε - + (2)将(1)所得的非确定有限自动机确定化 ε a b -0 1 1 3 12 2 1 +3 a b -+013 123 +123 123 13 +13 123 0 0 1 2 a a b a -+ + + (3)对(2)得到的DFA化简,合并状态0和2 为状态2: 1 1 2 a a b -+ + (4)令状态1和2分别对应非终结符B和A G: A→aB|a|ε; B→aB|bA|a|b|ε;可化简为:G: A→aB|ε;B→aB|bA|ε 设将文法G改写成等价的LL(1)文法,并构造预测分析表。 G:S→S*aT|aT|*aT; T→+aT|+a 解:消除左递归后的文法G’: S→aTS’|*aTS’ S’→*aTS’|ε T→+aT|+a 提取左公因子得文法G’’: S→aTS’|*aTS’ S’→*aTS’|ε T→+aT’ T’→T|ε Select(S→aTS’)={a} Select(S→*aTS’)={*} Select(S→aTS’)∩Select(S→*aTS’)=Ф Select(S’→*aTS’)={*} Select(S’→ε)=Follow(s’)={#} Select(S’→*aTS’)∩Select(S’→ε)= Ф Select(T→+aT’)={+} Select(T’→T)=First(T) ={+} Select(T’→ ε)=Follow(T’)={*,#} Select(T’→T)∩Select(T’→ε)= Ф 所以该文法是LL(1)文法。 预测分析表: * + a # S →*aTS’ →aTS’ S’ →*aTS’ →ε T →+aT’ T’ → ε →T → ε 6设文法G 为: S→A;A→BA|ε;B→aB|b 解:(1)拓广文法G’:(0) S’→S (1) S→A (2) A→BA(3) A→ε(4) B→aB (5) B→b ; FIRST(A) = {ε, a, b};FIRST(B) = {a, b} 构造的DFA 如下: 项目集规范族看出,不存在冲突动作。∴该文法是LR(1)文法。 LR(1)分析表如下: (3)输入串abab 的分析过程为: 简答题 3、设有文法G[S]: S→S(S)S|ε,该文法是否为二义文法?说明理由。 答:是二义的,因为对于()()可以构造两棵不同的语法树。 S S S ( S ) S S ( S ) S ε ε S ( S ) S S ( S ) S ε ε ε ε ε ε ε ε 给定文法G[S]: S→aA|bQ; A→aA|bB|b;B→bD|aQ ;Q→aQ|bD|b;D→bB|aA ;E→aB|bF F→bD|aE|b 构造相应的最小的DFA 。 解:先构造其NFA:

文档评论(0)

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

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

1亿VIP精品文档

相关文档