文档详情

编译原理试题(B)答案.doc

发布:2017-04-12约2.74千字共6页下载文档
文本预览下载声明
编译原理试题(A)答案 一、简答题(每小题5分,共30分) 1. 答:词法分析、语法分析、语义分析、中间代码生成、中间代码优化、目标代码生成。(5分) 2.(5分) 3.(5分) 答:S( aSb | Sb | b 4.(5分) 答:短语:(S,(a))、S,(a)、S、(a)、a 简单短语:S、a 句柄:S 5.(5分) main 层数为0 a 1 off0 b 1 off0+1 a 1 off0+2 x 1 off0+4 b 1 off0+6 # b 1 off0+8 # 6.(5分) t3: Null t2: Null t1: false n: 9 f的管理信息 t3: Null t2: Null t1: false n: 10 f的管理信息 t2: Null t1: 30 k: 30 main的管理信息 三、解: (1) G’[A]中各产生式的predict集如下:…………………. (5分) Predict(P({d; S}) ={ { } Predict(S(d;S) ={ d } Predict(S(sT) ={ s } Predict(T(;sT) ={ ; } Predict(T(ε) ={ } } (2) G’[A]的LL(1)分析表如下: …………………. (5分) { d s ; } P P({d; S}① S S(d;S② S(sT③ T T(;sT④ T(ε⑤ (3) 句子{d;s;s}的分析过程如下:…………………. (10分) 符号栈 输入串 驱动程序动作 #P {d;s;s}# 替换① #}S;d{. {d;s;s}# 匹配 #}S;d d;s;s}# 匹配 #}S; ;s;s}# 匹配 #}S s;s}# 替换③ #}Ts s;s}# 匹配 #}T ;s}# 替换④ #}Ts; ;s}# 匹配 #}Ts s}# 匹配 #}T }# 替换⑤ #} }# 匹配 # # 成功 四、解:(1) LR(1)可归活前缀状态机:………………………………………………. (5分) Z( AB (1) A( aB (2) A(b (3) B( aB (4) B(b (5) 将文法G[Z]按上述文法规则排序,则LR(1)分析表如下:(5分) action表 goto表 a b # A B 0 S2 S3 1 1 S5 S6 4 2 S10 S9 8 3 R3 R3 4 Acc 5 S5 S6 7 6 R5 7 R4 8 R2 R2 9 R5 R5 10 S10 S9 11 11 R4 R4 (2) abaab是文法G[]的句子,分析步骤…………(5分) 状态栈 符号栈 输入串 分析动作 转向状态 0 # abb# 移入S2 0,2 #a bb# 移入S9 0,2,9 #ab b# 归约R5 8 0,2,8 #aB b# 归约R2 1 0,1 #A b# 移入S6 0,1,6 #Ab # 归约R5 4 0,1,4 #AB # Acc (3) G[Z]是LALR(1)文法,理由如下:…………(5分) 在G[Z]的LR(1) 可归活前缀状态机中,状态5和10、6和9、7和11为同心状态,将这些同心状态各项的展望符集合并之后,没有产生归约-归约冲突,所以文法G[Z]是LALR(1)文法。 四、解: 中间代码:………………………. (8分) (: = , 0 , _,a) (+, a, 1, t1) (*, t1, 5, t2) (:=, t2,_, j) (WHILE, _, _, _) (, j, 100, t3) (Do, t3, _, _) (-,3, 1, t4) (*, t4, 1, t5) (AADD, A, t5, t6) (+, a, t6, t7) (:=, t7, _, a) (, a, 10, t8) (THEN, t8, _, _) (:=, 0, _, k) (ELSE, _, _, _ ) (*, x, y, t9) (*, x, y, t10) (/, t10, 5, t11) (+, t9, t11, t12) (:=, t12, _, k) (ENDIF, _, _, _) (+, j, 1, t13) (:=, t13, _, j) (ENDWHILE, _, _
显示全部
相似文档