还剩2页未读,继续阅读
文本内容:
学习中心/函授站____________________________________________________________姓名学号西安电子科技大学网络与继续教育学院2022学年上学期《编译原理与技术》期末考试试题(综合大作业)题号四总分题分10203040得分考试说明如需答案+
31711260541、大作业试题公布时间2022年4月22日;
2、考试必须独立完成,如发现抄袭、雷同均按零分计;
3、答案须用《西安电子科技大学网络与继续教育学院2022春期末考试答题纸》(个人专属答题纸)手写完成,要求字迹工整、卷面干净、整齐;
4、拍照要求完整、清晰,一张图片对应一张个人专属答题纸(A4纸),正确上传
一、单选题(每小题2分,共10分)
1、在以阶段划分的编译器中,阶段的主要作用是识别源程序中的句子结构A、词法分析B、语法分析C、语义分析D、代码优化
2、在自下而上语法分析中,LL
(1)中的第二个L表示o A、最右归约B、最左推导C、最左归约D、最右推导
3、在自下而上语法分析中,句柄是指右句型中的o A、非终结符B、短语C、直接短语D、最左直接短语
4、给定文法A—bA|aa,是该文法的句子A、aabb B、abab C、bbaa D、baba
5、在布尔表达式短路计算的翻译方案中,当按照产生式E-El andE2进行归约时,可以确定o A、E1的真出口B、E1的假出口C、E2的真出口D、E2的假出口
二、填空(每空2分,共20分)
1、动态存储分配包括分配和分配两种
2、正规式(a|b)*abb表示的正规集为
3、上下文无关文法G的四元组(N,T,P,S)中,S表示,P表示o
4、在文法E-E+T|T T-F*T|F F-id中,运算+的优先级比*,第1页(共2页)运算+是结合的,运算*是结合的
5、函数调用执行时,引用调用是指,值调用是指o
三、简答题(每小题10分,共30分)
1、请列举三种常用的中间代码,并说明编译过程中采用中间代码有什么好处
2、请计算下面文法G[E]中各非终结符的FIRST和FOLLOW集合请说明该文法为什么不是LL
(1)文法EfE*T|T T-T-F|F F-(E)|id
3、请给出下述语句的三地址码序列并指出此语句的出口while((a0)or(b0))do beginx:=x+l;if a0then a:=a-l elseb:=b+1end;
四、计算题(每小题20分,共40分)
1、某NFA的状态转换图如下表所示(0是初态,3是终态)
(1)(3分)写出该NFA可识别的3个长度各不相同的串;
(2)(12分)写出将该NFA确定化为DFA D的过程,并给出D的状态转换图;
(3)(5分)计算D的最小DFA D\并给出D,的状态转换图
2、设有上下文无关文法G及其语法制导翻译如下(注G中终结符id仅由单个英文字母组成,如a,b等)E-Ei+T{E.place=newtemp;emit+,Ei.place,T.place,E.place;}I T{E.place=T.place;}Tf Ti*F{T.place=newtemp;emit*,Ti.place,F.place,T.place;}I F{T.place=F.place;}{F・place=id・name;}
(1)(7分)画出a+b*c分析树;(*表示算术乘、-表示算术减);
(2)(3分)当=
3、b=
2、c=5时,写出表达式a+b*c的结果;(*表示算术乘、+表示算术加)
(3)(10分)给出文法G识别活前缀的DFA,简要说明该DFA的项目集中是否有冲突及冲突的类型第2页(共2页)。