编译原理 试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、简答题(每题5分,共20分)
1、简述编译程序所完成的主要工作。
2、应用递归下降和LL(1)分析技术的先决条件是什么?
3、简述在程序的声明部分语义分析所完成的基本工作。
4、试说明中间代码的作用及其形式。
二、演算题(共60分)
1、试为下列语言构造相应的文法。(6分)
{a 2m b m | m>0}
2、设有文法G[S]为:(6分)
S→dAB A→aA|a B→Bb|λ
其表示的相应语言是什么?
3、设有A=({q0,q1,q2},{a,b},M,{q0},{q1}),其中M为:(10分)
M(q0,a)={q1,q2} M(q0,b)={q0} M(q1,a)={q0,q1}
M(q2,a)={q0,q2} M(q2,b)={q1}
试为其构造DFA,它能接受bababab和abababb吗?
4、设有文法G[Z]:(8分)
Z→S
S→L=R | R
L→*R| i
R→L
已知LR(1)项目集IS={[ Z→.S,#]},计算CLOSURE(IS)的值。
5、选做题:要求从下面给出的(1)、(2)两题中任选一题完成。
(1)设当前层数为L,可用偏移量Offset值为101,且有下面程序,写出相关的符号表和类型表。(20分)
CONST a=245.43;
TYPE r=record
y:integer;
x:real;
end;
V AR c:integer;
d:array [3..6] of r;
(2)已知文法G(E)
E→T|E+T
T→F|T* F
F→(E)|i
(i) 给出句型(T * F+i)的最右推导及画出语法树(10分);
(ii) 给出句型(T * F+i)的所有短语、直接短语。(10分)
6、试写出下列赋值语句的四元式中间代码,其中各数组的下界为1,上界为10。(10分)
D[i][j]:=D[i][j]+1
三、分析题(20分)
对下列文法:
Z→S
S→bRST | bR
R→dSa | e
T→fRa | f
(1)求各非终极符的FIRST和FOLLOW集合。
(2)构造该文法的SLR(1)分析表。