编译原理期末考试习题及答案

一、填空题|(每题4分,共20分)

1. 乔母斯基定义的3型文法(线性文法)产生式形式 A?Ba|a,或A?aB|a,A,B∈Vn,

a,b∈Vt 。

2.语法分析程序的输入是 单词符号,其输出是 语法单位 。

3 型为 B ? .aB 的LR(0)项目被称为 移进 项目,型为 B ? a.B 的LR(0)

项目被称为 待约 项目,

4.在属性文法中文法符号的两种属性分别为 继承属性 和 综合属性 。 5、运行时存贮管理方案有 静态存储分配、动态存储分配 和 堆式存储分配 和方案。

二.已知文法 G(S)

(1) E ? T | E+T (2) T ? F | F*F (3) F ? (E)| i

(1)写出句型(T*F+i)的最右推到并画出语法树。(4分) (2)写出上述句型的短语,直接短语和句柄。(4分)

答:(1)最右推到(2分)

E ==> T ==> F ==> (E) ==> (E+T) ==> (E+F) ==> (E+i) ==> (T+i) ==> (T*F+i)

(2) 语法树(2分)

(3)(4分)

短语: (T*F+i) ,T*F+i ,T*F , i

直接短语:T*F , i 句柄:T*F

三. 证明文法 G(S) : S ? SaS |ε 是二义的。(6分) 答:句子 aaa对应的两颗语法树为:

因此,文法是二义文法

1

四.给定正规文法G(S):

(1) S ? Sa | Ab |b (2) A ? Sa

请构造与之等价的DFA。(6分) 答:对应的NFA为: (6分)

状态转换表: a b {F} Φ {S} {S} {S,A} Φ {S,A} {S,A} {S} 五. 构造识别正规语言b*a(bb*a)*b* 最小的DFA(要求写出求解过程)。(15分)答:(1)对应的NFA(5分)

(2)将(1)所得的NFA确定化:(5分) a b {0} {1,3} {0} {1,3} Φ {2,3} {2,3} {1,3} {2,3} (5分)

六. 已知文法 G(S) :

(1) S ? ^ | a | (T) (2) T ? T,S | S 试:(1)消除文法的左递归;(4分)

(2)构造相应的first 和 follow 集合。(6分) 答:(1)消除文法的左递归后文法 G’(S)为:

(1) S ? ^ | a | (T)

(2) T ? ST’ | S

2

(3) T’ ? ,ST’ |ε (4分)

(2)(6分) first follow S a ^ ( # , ) T a ^ ( ) T’ , ε ) 七. 已知文法 G(S) :

(1) S ? SiA | A (2) A ? A+B | B (3) B ? A* | (

试构造非终止符的firstVT和lastVT集合。(10分) 答:(10分) firstVT lastVT S i , + , * , ( i , + , * , ( A + , * , ( + , * , ( B * , ( * , ( 八.已知文法 G(S) :

Follow (1) S ? B B

S # (2) B ? a B

B a,b,# (3) B ? b

的follow集合如表:

试:(1)给出该文法的LR(0)项目集规范族划分; (2)填写相应的SLR(1)的分析表。(15分) 答:(1)LR(0)项目集规范族划分(8分) I0 I2 I3

S B B S’? .S ---? I1 I1 S ? B.B ---? I5 B ? a.B ---? I6

a a S ? .BB ---B ? I2 B ? .aB --? I3 B ? .aB --? I3 S’? S.

a b b B ? .aB --? I3 --? I --? I4 B ? .b B ? .b 4b B ? .b --? I4

I4 I5 I6

S ? BB. B ? b. B ? aB.

(2) SLR(1)分析表(7分) 状态 Action Goto a b # S B 0 S3 S4 1 2 1 Acc 2 S3 S4 5 3 S3 S4 6 4 R3 R3 R3 5 R1 6 R2 R2 R2

3

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4