当前位置:文档之家› 编译原理 试题

编译原理 试题

一、简答题(每题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)分析表。

相关主题