编译原理复习整理(重点含答案)

上传人:小** 文档编号:90432120 上传时间:2019-06-12 格式:DOC 页数:19 大小:1.57MB
返回 下载 相关 举报
编译原理复习整理(重点含答案)_第1页
第1页 / 共19页
编译原理复习整理(重点含答案)_第2页
第2页 / 共19页
编译原理复习整理(重点含答案)_第3页
第3页 / 共19页
编译原理复习整理(重点含答案)_第4页
第4页 / 共19页
编译原理复习整理(重点含答案)_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《编译原理复习整理(重点含答案)》由会员分享,可在线阅读,更多相关《编译原理复习整理(重点含答案)(19页珍藏版)》请在金锄头文库上搜索。

1、1、给出下面语言的相应文法 。 L1=anbnci|n1,i0从n,i的不同取值来把L1分成两部分:前半部分是anbn:AaAb|ab后半部分是ci:BBc|所以整个文法G1S可以写为:G1(S):SAB ; AaAb|ab ;BcB|3、构造一个DFA,它接受S=a,b上所有包含ab的字符串。(要求:先将正规式转化为NFA,再将NFA确定化,最小化)4、对下面的文法G:ETE E+E| TFT TT|FPF F *F| P(E)|a|b|(1)证明这个文法是LL(1)的。(2)构造它的预测分析表。(1)FIRST(E)=(,a,b,FIRST(E)=+,FIRST(T)=(,a,b,FIRS

2、T(T)=(,a,b,FIRST(F)=(,a,b,FIRST(F)=*,FIRST(P)=(,a,b,FOLLOW(E)=#,)FOLLOW(E)=#,)FOLLOW(T)=+,),#FOLLOW(T)=+,),#FOLLOW(F)=(,a,b,+,),#FOLLOW(F)=(,a,b,+,),#FOLLOW(P)=*,(,a,b,+,),#(2)考虑下列产生式:FIRST(+E)FIRST()=+=FIRST(+E)FOLLOW(E)=+#,)=FIRST(T)FIRST()=(,a,b,=FIRST(T)FOLLOW(T)=(,a,b,+,),#=FIRST(*F)FIRST()=*=F

3、IRST(*F)FOLLOW(F)=*(,a,b,+,),#=FIRST(E)FIRST(a) FIRST(b) FIRST()=所以,该文法式LL(1)文法.(3)+*()ab#EETTFFP5、 考虑文法: SAS|b ASA|a(1)列出这个文法的所有LR(0) 项目。0. 1.2.3.4.5.6.7.8.9.10.11.(2)给出识别文法所有活前缀的DFA。1987 S A S 11100 a 432 A S 6 b 5确定化:SAab0,2,5,7,101,2,5,7,8,102,3,5,7,101161,2,5,7,8,102,5,7,8,102,3,5,7,9,101162,3,

4、5,7,102,4,5,7,8,102,3,5,7,101162,5,7,8,102,5,7,8,102,3,5,7,9,101162,3,5,7,9,102,4,5,7,8,102,3,5,7,101162,4,5,7,8,102,5,7,8,102,3,5,7,9,10116116 A S3:5:6: S A a b S a A S b S A b a A4:0:7: A S b a a b b a2:1: DFA6、设有文法:PP+Q|Q QQ*R|R R(P)|i(1)证明Q*R+Q+Q是它的一个句型。(3分)P=P+Q=P+Q+Q=Q+Q+Q=Q*R+Q+Q(2) 给出Q*R+Q+Q

5、的所有短语,直接短语和句柄。(4分)短语: Q*R,Q*R+Q,Q*R+Q+Q 直接短语: Q*R 句柄: Q*R(3)给出句子+*的最右推导。(4分)(4)给出句子+*的最左推导。(4分)7、设有文法:EE+T|T TT*F|F F(E)|i(1)证明E+T*F是它的一个句型。(3分)(2)给出E+T*F的所有短语,直接短语和句柄。(4分)短语: E+T*F, T*F, 直接短语: T*F 句柄: T*F(3) 给出句子+*的最右推导。(4分)11、构造下面正规式相应的DFA1(0|1)*10114、对下面的文法G:Expr- Expr Expr(Expr)|Var ExprTail Exp

6、rTail- Expr|Varid VarTail VarTail(Expr) |(1) 构造LL(1)分析表。(12分)(2) 给出对句子idid(id)的分析过程。(8分)16、已知文法GS 为: S-a|(T)T-T,S|S 消除文法GS中的左递归,得文法GS。 文法GS是否为LL(1)的?若是,给出它的预测分析表。FIRST(S)=a,( FIRST(T)=a,( FIRST()=, FOLLOW(S)=),# FOLLOW(T)=) FOLLOW()=)预测分析表a(),#ST是LL(1)文法17、对下面的文法G:S S a T | a T | a T T a T | a(1) 消除

7、该文法的左递归和提取左公因子;构造各非终结符的FIRST和FOLLOW集合;18、文法G(S)及其LR分析表如下,请给出串baba#的分析过程。(1) S DbB(2) D d(3) D (4) B a(5) B Bba(6) B LR分析表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

8、) (:=, t3, /, a)(4) (:= (3), a)八、语义分析题1、将语句if (A0) then while (C0) do C:=C-D翻译成四元式答案:100 (j, B, 0, 104)103 (j, -, -, 109)104 (j, C, 0, 106)105 (j, -, -, 109)106 (-, C, D, T1)107 (:=, T1, -, C)108 (j, -, -, 104)1092、写出下面语句经语法制导翻译后所生成的四元式代码序列。 if xc do c:=c+1 else x:=x+5答案:假设初始为100,则四元式代码序列为 100ifxcgoto104103goto109104M:=C+1105C:=M106goto102107N:=X+5108X:=N1098、写出表达式a+b*(c-d)对应的逆波兰式和三元式序列。答案:逆波兰式:(abcd-*+) 三元式序列: OP ARG1 ARG2 (1) - c d (2) * b (1) (3) + a (2) 1编译程序是对高级语言程序的解释执行。( )2一个有限状态自动机中,有且仅有一个唯一的终态。()3一个算符优先文法可能不存在算符优先函数与之对应。 ( )4语法分析时必须先消除文法中的左递归

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号