ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:154.28KB ,
资源ID:5268154      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5268154.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理汇总 2.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编译原理汇总 2.docx

1、编译原理汇总 2编译原理考试试题及答案(汇总)2. 考虑文法 GS: S (T) | a+S | a T T,S | S 消除文法的左递归及提取公共左因子。解:消除文法GS的左递归: S(T) | a+S | a TST T,ST| 提取公共左因子: S(T) | aS S+S | TST T,ST| 3. 试为表达式 w+(a+b)*(c+d/(e-10)+8) 写出相应的逆波兰表示。解: w a b + c d e 10 - / + 8 + * +4. 按照三种基本控制结构文法将下面的语句翻译成四元式序列:while (AC BD) if (A 1) C=C+1;else while (A

2、 D)A=A+2;。解:该语句的四元式序列如下(其中E1、E2和E3分别对应ACBD、A1和AD,并且关系运算符优先级高): 100 (j,A,C,102) 101 (j,_,_,113) 102 (j=0, m=1, n=2 9. 已知文法G(S):Sa| (T)TT,S|S的优先关系表如下:关系a(),a-.(.=.,.请计算出该优先关系表所对应的优先函数表。15. 考虑下面的程序:procedure p(x, y, z);begin y:=y+z; z:=y*z+xend;begin a:=2; b:=3; p(a+b, b, a); print aend.试问,若参数传递的方式分别采用

3、传地址和传值时,程序执行后输出 a的值是什么? 16.写出表达式ab*(c-d)/e的逆波兰式和三元序列。20.考虑下面的程序:procedure p(x, y, z);beginy:=y+2;z:=z+x; end begina:=5;b:=2;p(a+b, a-b, a);print a end.试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出 a的值是什么? 22.写出表达式a:=(b+c)*e+(b+c)/f的逆波兰式和三元序列。24.已知文法GSSS*aF | aF | *aFF+aF | +a消除文法左递归和提公共左因子。25.符号表的作用是什么?符号表查找和整理技术有

4、哪几种?五、计算题:1.设文法G(S): S | a | (T) TT,S | S 消除左递归; 构造相应的FIRST和FOLLOW集合; 构造预测分析表 3.设文法G(S):S(T) | aTT+S | S(1)计算FIRSTVT 和LASTVT; (2)构造优先关系表。 5.把语句while a0 then a:=a+1else a:=a*3-1;翻译成四元式序列。6.设有基本块D:=A-CE:=A*CF:=D*ES:=2T:=A-C Q:=A*CG:=2*SJ:=T*QK:=G*5L:=K+JM:=L假设基本块出口时只有M还被引用,请写出优化后的四元序列。7.已知文法G(S)Sa | |

5、 (T)TT,S | S(1) 给出句子(a,(a,a)的最左推导;(2) 给出句型(T,S),a)的短语, 直接短语,句柄。9.已知文法G(S) SaAcBe AAb| b Bd(1)给出句子abbcde的最左推导及画出语法树;(2)给出句型aAbcde的短语、素短语。 10.设文法G(S): S(T) | aS | a TT,S | S 消除左递归和提公共左因子; 构造相应的FIRST和FOLLOW集合; 构造预测分析表。11.把语句 if X0 Y0 do X:=A*3 else Y:=B+3;翻译成四元式序列。12.已知文法G(S) EE+T | T TT*F| F F(E)| i (

6、1) 给出句型 (i+i)*i+i的最左推导及画出语法树; (2) 给出句型 (E+T)*i+F 的短语,素短语和最左素短语。 13.设文法G(S):ST | STTU |TUUi |-U(1)计算FIRSTVT 和LASTVT; (2)构造优先关系表。 编译原理期末试题(三)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

7、) (3) (+ (1), (2)(4) (:=, t3, /, a) (4) (:= (3), a)3、对于文法G(S): 答:1) 2) 短语: Ma), (Ma), b(Ma)b直接短语: Ma) 句柄: Ma)2233三、 设将文法G改写成等价的LL(1)文法,并构造预测分析表。 G:SS*aT|aT|*aT; T+aT|+a 解:消除左递归后的文法G: SaTS|*aTSS*aTS|T+aT|+a 提取左公因子得文法G:SaTS|*aTSS*aTS|T+aTTT| Select(SaTS)=aSelect(S*aTS)=*Select(SaTS)Select(S*aTS)=Selec

8、t(S*aTS)=*Select(S)=Follow(s)=#Select(S*aTS)Select(S)= Select(T+aT)=+Select(TT)=First(T) =+Select(T )=Follow(T)=*,#Select(TT)Select(T)= 所以该文法是LL(1)文法。预测分析表: *+a#S*aTSaTSS*aTST+aTT T 四、 对文法G(S):S a | | (T);T T,S | S 答:(1) a(),#a(=,#=(2) 是算符优先文法,因为任何两个终结符之间至多只有一种优先关系。(2分)(3) 给出输入串(a,a)#的算符优先分析过程。步骤 栈当

9、前输入字符剩余输入串动作1#(a,a#( 移进2#(a,a)#(, 归约4#(N,a)#(, 移进5#(N,a)#,) 归约7#(N,N)#,) 归约8#(N)#(=) 移进9#(N)#)# 归约10#N#接受四、对下面的文法G: Sa | b | (T)TT,S | S(1) 消去文法的左递归,得到等价的文法G2;(2) 判断文法G2是否LL(1)文法,如果是,给出其预测分析表。(15)G2: Sa | b | (T) T ST T,S T | G2是LL(1)文法。ab(),#SSa Sb S(T)TT STT STT STTT T,S T 五、设有文法GA:ABCc | gDBBbCDE

10、 |CDaB | caDdD |EgAf | c(1) 计算该文法的每一个非终结符的FIRST集和FOLLOW集;(2) 试判断该文法是否为LL(1)文法。(15)FIRSTFOLLOWABCDEA,b,c,d,gbA,c,dDC,gA,c,dC,d,gA,b,c,g是LL(1)文法。六、对表达式文法G:E E+T | TT T*F | FF (E) | I(1)造各非终结符的FIRSTVT和LASTVT集合;(2)构造文法的算符优先关系表。(15)FIRSTVTLASTVTETF*,+,(,i*,(,i(,i*,+,),i*,),i),i 算符优先关系表+*I()#+*I()#=编译原理期末

11、试题(六)六 对文法GS S aSb | PP bPc | bQcQ Qa | a(1) 它是否是算符优先文法?请构造算符优先关系表(2) 文法GS消除左递归、提取左公因子后是否是LL(1)文法?请证实。答:1.求出GS的FIRSTVT集和LASTVT集:FIERSTVT(S)=a,b LASTBVT(S)=b,c FIERSTVT(P)=b LASTBVT(P)=c FIERSTVT(Q)=a LASTBVT(Q)=a构造优先关系表为: a b c a b c 由于在优先关系中同时出现了aa以及bb,所以该文法不是算符优先文法。2. 消除左递归和提取左公因子后的文法为:S aSb | PP

12、bPP Pc |QcQ aQQ aQ|求具有相同左部的两个产生式的Select集的交集:Select(SaSb)Select(SP) = aFirst(P) = ab = Select(PPc)Select(PQc) = First(P)First(Q)=ba= Select(QaQ)Select(Q) = aFollow(Q) = ac = 所以修改后的文法是LL(1)文法。八 已知源程序如下: prod:=0; i:=1; while i20 do beginprod:=prod+ai*bi;i:=i+1 end;试按语法制导翻译法将源程序翻译成四元式序列(设A是数组a的起始地址,B是数组

13、b的起始地址;机器按字节编址,每个数组元素占四个字节)。【答案:】九 设有以下程序段 procedure P(x,y,z) begin Y:=y*3; Z:=X+z; end; begin a:=5; b:=2; p(a*b,a,a); print(a); end若参数传递的方法分别为(1)传值、(2)传地址、(3)传名,试问结果分别什么?(1)传值 5; (2)传地址 25; (3)传名 45编译原理期末试题(七)5(6分)对下列四元式序列生成目标代码: A:=B*CD:=E+FG:=A+DH:=G*2其中,H是基本块出口的活跃变量, R0和R1是可用寄存器答:LD R0, BMUL R0,

14、 CLD R1, EADD R1, FADD R0, R1MUL R0, 2ST R0, H四、对于文法G(E): (8分)ET|E+TTF|T*FF(E)|i1. 写出句型(T*F+i)的最右推导并画出语法树。2. 写出上述句型的短语,直接短语、句柄和素短语。答:1. (4分)ETF(E) (E+T) (E+F) (E+i) (T+i) (T*F+i) 2. (4分)短语:(T*F+i), T*F+i, T*F, i直接短语:T*F, i句柄:T*F素短语:T*F, i五、设文法G(S):(12分)1 构造各非终结符的FIRSTVT和LASTVT集合;2 构造优先关系表和优先函数。(12分)

15、答:(6分)FIRSTVT(S)= i,+,),( FIRSTVT(A)= +,),( FIRSTVT(B)= ),( LASTVT(S)= i,+,*,( LASTVT(A)= +,*,( LASTVT(B)= *,( 优先关系表: (3分)i+()*i()优先函数: (3分)i+()*f26616g14661七、(8分)将语句if (A0) then while C0 do C:=C+D翻译成四元式。(8分)答:100 (j, B, 0, 104)103 (j, -, -, 109)104 (j, C, 0, 106)105 (j, -, -, 109)106 (+, C, D, T1)1

16、07 (:=, T1, -, C)108 (j, -, -, 104)109 (控制结构3分,其他5分)八、(10分) 设有基本块如下:T1:=S+RT2:= 3T3:= 12/T2T4:=S/RA:=T1-T4T5:=S+RB:=T5T6:=T5*T3B:=T6(2)设A,B是出基本块后的活跃变量,请给出优化后的四元式序列。答:(2) 四元式序列:(4分) T1:=S+R T4:=S/R A:=T1-T4 B:=T1*4 编译原理期末大题1. 设有如下文法G(S),试消除其左递归。G(S):SAc|c ABb|b BSa|a解:SabcS|bcS|cS, SabcS|2. 试构造与下面G(S

17、)等价的无左递归的文法。G(S):SSa|Nb|c NSd|Ne|f解:SfNbS|cS, SaS|dNbS|, NeN|3. 设有文法G(S):SaBc|bABAaAb|bBb| 求各产生式的FIRST集,FOLLOW(A)和FOLLOW(B),以及各产生式的SELECT集。 构造LL(1)分析表,并分析符号串baabbb是否是。解:(1)FIRST(aBc)=a, FIRST(bAB)=b FIRST(aAb)=a, Ab: FIRST(Ab)=b, Bb: FIRST(b) = b, FIRST()= FOLLOW(A)=b, #, FOOLOW(B)=c, #SELECT(SaBc)=

18、a, SELECT(SbAB) =b, SELECT(AaAb)=a, SELECT(Ab)=b, SELECT(Bb)=b, SELECT(B)=c, #因此,所得的LL(1)分析表如表A-4所示。表A-4 LL(1)分析表输入VN输入符号abc#SSaBcSbABAAaAbAbBBbBB(2)分析符号串baabbb成功,baabbb是该文法的句子,如图A-16所示。图A-16 识别串baabbb的过程4. 对下列文法G(S):SD(R) RR;P|PPS|I Di计算文法G中每个非终结符的FIRSTVT集和LASTVT集。构造文法G的算符优先关系矩阵。解:(1)FIRSTVT(S)=(,

19、i,FIRSTVT(D) =i,FIRSTVT(R)=;, (, i,FIRSTVT(P)=i, (,LASTVT(S)=),LASTVT(D)=i,LASTVT(R) = ;, ), i,LASTVT(P)=i, )(2)算符优先矩阵,如表A-5所示。表A-5 优先矩阵();i#();i#5. 已知文法G(S):Sa|(T)TT,S|S给出句子(a,a),a)的最左推导并画出语法树;给出句型(T,a,(T)所有的短语、直接短语、素短语、最左素短语、句柄和活前缀。解:(1)最左推导:S (T) (T,S) (S,S) (a,S) (a,(T) (a,(T,S) (a,(S,S) (a,(a,

20、S) (a,(a,a)语法树:如图A-16所示。图A-16 (a,(a,a)的语法树(2)句型(T, a, (T)的短语、直接短语、素短语、最左素短语、句柄、活前缀及语法树(图A-17)。短语:a | T,a | (T) | T , a , (T) | (T , a , (T)直接短语:a | (T)素短语:a | (T)最左素短语:a句柄:a活前缀: | ( | (T | (T , | (T , a图A-17 (T,a,(T)的语法树四、综合题1. 已知文法 G(E)E T|ETTF|T *FF (E)|i(1)给出句型(T *Fi)的最右推导;(2)给出句型(T *Fi)的短语、简单短语、

21、句柄、素短语、最左素短语。解: (1) 最右推导:E -T-F-(E)-(E T)-(E F)-(E i)-(Ti)-(T*Fi)(2) 短语:(T*Fi) ,T*Fi ,T*F,i 简单短语:T*F,i 句柄:T*F素短语:T*F,i最左素短语:T*F3. 文法:S-MH|aH -LSo| K -dML| L -eHfM-K|bLM判断 G 是否为 LL(1) 文法,如果是,构造 LL(1) 分析表。 解:各符号的 FIRST 集和 FOLLOW集为:各产生式SELECT集为:SELECTS-MHd,b,e,#,oS-aaH -LSoeH -#,f,oK -dMLdK -e,#,oL -eH

22、feM-Kd,e,#,oM- bLMb预测分析表由于预测分析表中无多重入口,所以可判定文法是 LL(1)的。4. 对下面的文法 G :E -TEE-+E| T -FTT -T| F- PFF- *F| P-(E)|a|b|(1)计算这个文法的每个非终结符的 FIRST 集和 FOLLOW 集。 (4 分)(2) 证明这个方法是 LL(1) 的。(4 分) (3) 构造它的预测分析表。(2 分) 解:(1)计算这个文法的每个非终结符的 FIRST 集和 FOLLOW集。FIRST 集合有:FIRST(E)=FIRST(T)=FIRST(F)=FIRST(P)=(,a,b,;FIRST(E)=+,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1