编译原理期末考试习题及答案 下载本文

.

一、填空题|(每题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对应的两颗语法树为:

;..

.

因此,文法是二义文法

四.给定正规文法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

(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 --? I --? I3 S’? S. B ? .aB B ? .aB 3

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

I4 I5 I6

B ? b. S ? BB. 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 九.设某语言的not-then-else 语句的语法形式为:S ? not E then S1 其语义解释为:

针对自上而下的语法分析器,

(1) 分段产生式;(3分)

(2) 写出每个产生式对应的语义动作。(7分) 答:(1)分段产生式(3分)及语义动作(7分)

(1) R ? not E then { Backpatch($2.FC ,nxq );

$$.chain = $2.Tc }

(2) S ? R S1 { Backpatch($2.chain , nxq )}

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

1. 乔母斯基定义的2型文法(上下文无关文法)产生式形式 A?β,A∈Vn, β∈V+。 2.词法分析程序的输入是 字符串 ,其输出是 单词符号 。

3 算符有限分析方法每次都是对 最左素短语 进行规约。型为 B ? aB. 的LR(0)项

目被称为 规约 项目。

4、写出x:=b*(d-e)/(c-d)+e的逆波兰式__xbde-*cd-/e+:=__。

5、常用的两种动态存贮分配办法是__栈式存储 分配 和 堆式存储__分配。

二.已知文法 G(S) :

(1) S ? ^ | a | (T) (2) T ? T,S | S 试:(1)写出句型(a,(a,a))的最左推到并画出语法树。(4分) (2)写出上述句子的短语,直接短语和句柄。(4分) 答:(1)最左推到(2分)

S ==> (T) ==> (T,S)==> (S,S) ==> (a,S) ==> (a,(T)) ==> (a,(T,S)) ==> (a,(S,S)) ==> (a,(a,S)) ==> (a,(a,a))

(2) 语法树(2分)

;..