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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

编译原理期末试题及答案.docx

1、编译原理期末试题及答案1、 试为表达式 w+(a+b)*(c+d/(e-10)+8) 写出相应的逆波兰表示。2、写出表达式ab*(c-d)/e的逆波兰式和三元序列。3、写出表达式a:=(b+c)*e+(b+c)/f的逆波兰式和三元序列。4、已知文法G(S)及相应翻译方案SaAb print “1”Sa print “2”AAS print “3”Ac print “4”输入acab, 输出是什么?5、 已知文法G(S)SbAaA(B | aBAa)写出句子b(aa)b的规范归约过程。6、已知文法GSSS*aF | aF | *aFF+aF | +a消除文法左递归。1、设文法G(S): S |

2、a | (T) TT,S | S 消除左递归; 构造相应的FIRST和FOLLOW集合; 构造预测分析表 2.语句 if E then S(1) 改写文法,使之适合语法制导翻译; (2) 写出改写后产生式的语义动作。 4.设某语言的for语句的形式为for i:E(1) to E(2) do S其语义解释为i:E(1)LIMIT:E(2)again: if iLIMIT thenBeginS;i:i1goto againEnd;(1)写出适合语法制导翻译的产生式;(2)写出每个产生式对应的语义动作。7.已知文法G(S)Sa | | (T)TT,S | S(1) 给出句子(a,(a,a)的最左推

3、导;(2) 给出句型(T,S),a)的短语, 直接短语,句柄。8.对于 C 语言do S while E语句 (1)改写文法,使之适合语法制导翻译; (2)写出改写后产生式的语义动作。9.已知文法G(S) SaAcBe AAb| b Bd(1)给出句子abbcde的最左推导及画出语法树;(2)给出句型aAbcde的短语、素短语。 10.设文法G(S): S(T) | aS | a TT,S | S 消除左递归和提公共左因子; 构造相应的FIRST和FOLLOW集合; 构造预测分析表。12.已知文法G(S) EE+T | T TT*F| F F(E)| i (1) 给出句型 (i+i)*i+i的

4、最左推导及画出语法树; (2) 给出句型 (E+T)*i+F 的短语,素短语和最左素短语。 答案:(1)消除左递,文法变为GS:S | a | (T)TST | ST,ST |此文法无左公共左因子。(2)构造相应的FIRST和FOLLOW集合: FIRST(S)=a, , (, FOLLOW(S)=#, , )FIRST(T)=a, , ( ,FOLLOW(T)=FIRST(T)=, ,FOLLOW(F)=)(3)构造预测分析表:a(),#SSaSS(T)TTSTTSTTSTTTT,ST2. (1)Cif E thenSCS(1) (2) Cif E then BACK(E.TC, NXQ);

5、 C.chain:=E.FC SCS(1) S.chain:=MERG(C.Chain, S(1). Chain)4. (1) Ffor i:=E(1) to E(2) do SFS(1)(2) Ffor i:=E(1) to E(2) doGEN(:=, E(1).place, _, entry(i);F.place:=entry(i);LIMIT:=Newtemp;GEN(:=, E(2).place, _, LIMIT);Q:=NXQ;F.QUAD:=q;GEN(j, entry(i), LIMIT, q+2)F.chain:=NXQ;GEN(j, _, _, 0)SFS(1)BACKP

6、ATCH(S(1).chain, NXQ); GEN(+, F.place, 1, F.place); GEN(j, _, _, F.QUAD); S.chain:=F.chain7. 最左推导S=(T)=(T,S)=(S,S)=(a,S)=(a,(T)=(a,(T,S)=(a,(S,S)=(a,(a,S)=(a,(a,a)短语 (T,S),a) (T,S),a (T,S) T,S a直接短语 T,S a句柄 T,S9.(1) S=aAcBe=AAbcBe=abbcBe=abbcde(2) 短语: aAbcde, Ab, d 素短语: Ab, d10.(1) S (L) | aS SS | L

7、SL L,SL |(2) FIRST(S)=a, ( FIRST(S)=a, (, FIRST(L)=a, ( FIRST(L)=, FOLLOW(S)=, ), # FOLLOW(S)=, ), #FOLLOW(L)= ) FOLLOW(L)= )(3) ( ) a , # SS (L)S aSSSSSSSSSLLSLLSLL,SL LL12.(1) E=E+T=T+T=T*F+T=F*F+T=(E)*F+T=(E+T)*F+T=(T+T)*F+T =(F+T)*F+T=(i+T)*F+T=(i+F)*F+T=(i+i)*F+T=(i+i)*i+T =(i+i)*i+F=(i+i)*i+i

8、(2) 短语 i, F, E+T, (E+T), (E+T)*i, (E+T)*i+F 素短语 i, E+T最左素短语 E+T编译原理期末试题(二)对于函数f2,由于局部变量x的作用域只是函数体的一部分,不会出现上述问题,因而编译器不报错。6、正规式b*a(bb*a) *b*体现的特点是,每个a的左边都有若干b,除非a是第一个字母。该正规式定义的语言是:至少含一个a,但不含子串aa的所有a和b的串集。最简DFA如下:7、 消除左递归后的文法: B 1 B B 0 B | 1 B | 相应的翻译方案如下: B 1 B.i := 1 BB.val := B.val B 0 B1.i := B.i

9、2 B1 B.val := B1.val | 1 B1.i := B.i 2 +1 B1 B.val := B1.val | B.val := B.i编译原理期末试题(三)2、写出表达式a=b*c+b*d对应的逆波兰式、四元式序列和三元式序列。 答:逆波兰式: abc*bd*+:= 3、对于文法G(S): 答:1) 2) 短语: Ma), (Ma), b(Ma)b直接短语: Ma) 句柄: Ma)三、 设有字母表a,b上的正规式R=(ab|a)*。 解:(1)(2)将(1)所得的非确定有限自动机确定化ab-01131221+3ab-+013123+12312313+13123(3)对(2)得到

10、的DFA化简,合并状态0和2 为状态2:(4)令状态1和2分别对应非终结符B和AG: AaB|a|; BaB|bA|a|b|;可化简为:G: AaB|;BaB|bA|四、 设将文法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)=Select(S*aTS)=*Select(S)=Follow(s)=

11、#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 6设文法G 为: SA;ABA|;BaB|b解:(1)拓广文法G:(0) SS (1) SA (2) ABA(3) A(4) BaB (5) Bb ; FIRST(A) = , a, b;FIRST(B) = a, b构造的DFA 如下:项目集规范族看出,不存在冲突动作。该文法是LR(1)文法。

12、(2) LR(1)分析表如下: (3)输入串abab 的分析过程为:五、 对文法G(S):S a | | (T);T T,S | S 答:(1) a(),#a(=,#=(2) 是算符优先文法,因为任何两个终结符之间至多只有一种优先关系。(2分)(3) 给出输入串(a,a)#的算符优先分析过程。步骤 栈当前输入字符剩余输入串动作1#(a,a#( 移进2#(a,a)#(, 归约4#(N,a)#(, 移进5#(N,a)#,) 归约7#(N,N)#,) 归约8#(N)#(=) 移进9#(N)#)# 归约10#N#接受五、设有文法GA:ABCc | gDBBbCDE |CDaB | caDdD |EgA

13、f | 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)文法。2对于文法GS:SAB,AAa|bB,Ba|Sb求句型baSb的全部短语、直接短语和句柄?句型baSb的语法树如图五(2)所示。解:baSb为句型baSb的相对于S的短语,ba为句型baSb的相对于A的短语,Sb为句型baSb的相对于B的短语,且为直接短语,a为句型baSb的相对于B的短语,且为直接短语和句柄。3设有非确定的有自限动机NFA M=(A

14、,B,C,0,1,A,C),其中: (A,0)=C (A,1)=A,B (B,1)=C (C,1)=C。请画出状态转换距阵和状态转换图。解:状态转换距阵为:01ACA,BBCCC状态转换图为七 已知文法G为:(1) S S(2) S aAd(3) S bAc(4) S aec(5) S bed(6) A e 试构造它的LR(1)项目集、可归前缀图和LR(1)分析表。【】【答案:】构造LR(1)分析表 如下:二、设=0,1上的正规集S由倒数第二个字符为1的所有字符串组成,请给出该字集对应的正规式,并构造一个识别该正规集的DFA。(8分)答:构造相应的正规式:(0|1)*1(0|1) (3分)NF

15、A: (2分) 1 1 1 0 0确定化:(3分)I0,1,21,21,2,31,21,21,2,31,2,31,2,41,2,3,41,2,41,21,2,31,2,3,41,2,41,2,3,4 0 1 0 1 0 0 0 1 1 1四、对于文法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*

16、F素短语:T*F, i九、(9分) 设已构造出文法G(S):(1) S BB(2) B aB(3) B b的LR分析表如下ACTIONGOTO状态ab#SB0s3s4121acc2s6s753s3s484r3r35r16s6s797r38r2r29r2假定输入串为abab,请给出LR分析过程(即按照步骤给出状态,符号,输入串的变化过程)。答:步骤 状态 符号 输入串0 0 # abab#1 03 #a bab#2 034 #ab ab#3 038 #aB ab#4 02 #B ab#5 026 #Ba b#6 0267 #Bab #7 0269 #BaB #8 025 #BB #9 01 #S

17、 # acc1. 设有如下文法G(S),试消除其左递归。G(S):SAc|c ABb|b BSa|a解:SabcS|bcS|cS, SabcS|2. 试构造与下面G(S)等价的无左递归的文法。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:

18、 FIRST(Ab)=b, Bb: FIRST(b) = b, FIRST()= FOLLOW(A)=b, #, FOOLOW(B)=c, #SELECT(SaBc)=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):

19、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, 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)最左素短

20、语:a句柄:a活前缀: | ( | (T | (T , | (T , a图A-17 (T,a,(T)的语法树项目集族和DFA1、w a b + c d e 10 - / + 8 + * +2、abcd-*e/+3、abc+e*bc+f/+:=4、42315、句子b(aa)b的规范归约过程:步骤符号栈输入串动作0#b(aa)b#预备1#b(aa)b#移进2#b(aa)b#移进3 #b(a a)b# 移进4#b(Aa)b#归约5 #b(Ma)b#移进6#b(Ma)b#移进7#b(B b# 归约8#bAb#归约9#bAb#移进10#S#接受6、消除左递归SaFS | *aFSS*aFS | F+aF | +a

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

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