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