《编译原理》训练题1(3)

2020-04-14 02:07

FIRST(S)=(1) , FIRST(A)= (2) , FIRST(B)=(3) ,FIRST(C)=(4) . 可选项有:

a. {b,ε} b.{a,ε} c.{a,b,ε} d.{a,b,#} e.{a,b} f.{#}

FOLLOW(S)=(5) , FOLLOW(A )=(6) , FOLLOW(B)=(7) , FOLLOW(C)=(8) . 可选项有: a.{b} b.{a,#} c.{a,b,#} d.{#}

SELECT(S→AB)=(9) , SELECT (S→bC)=(10) , a.{b} b.{a,#} c.{a,b,#} d.{a,b} 2.已知文法G[E]:

E→TE' E'→+TE'|ε T→FT' T'→*FT'|ε F→(E)|i 可推出ε的非终结符有: (1)

a.E T F b.E' T' c.E E' d.E E' T' FIRST(E)={(2) },FIRST(E')={ (3) } FIRST(T')={(4) }. FOLLOW(E)={(5) },FOLLOW(T)={(6) }.FOLLOW(F) ={(7) } SELECT(F→(E))={ (8) } SELECT(F→i)={ (9) } 可选项有:

a.ε,+ b.*,ε c.),# d.(,i e.#,+,) f.*,+,#,) g.( h.i 3.对于文法G[A]:

A::=aABe|Ba B::=Db|e

有人说:因为FIRST(aABe)∩FOLLOW(A)≠Ф,并且FIRST(BA)∩FOLLOW(A)≠Ф,所以文法G[A]不是LL(1)文法. 这种说法( ). 可选项有:

a.正确 b.不正确 4.下列文法:

S→AA A→Aa|a

不是LL(1)文法的理由是(1) 可选项有:

a.FIRST(S) ∩ FIRST(A) ≠Ф b.FIRST(A) ∩ FOLLOW(A) ≠Ф c.FIRST(Aa) ∩ FIRST(a) ≠Ф d.都不是

5.已知文法G(S):

S→Et|Rt T→DR|E R→Dr|e D→a|bd

(1) FIRST(S)=(1),FIRST(T)=(2),FIRST?=(3),FIRST(D)=(4). 可选项有:

A.{d,e} b.{a,b,d,e,e} c.{a,b} d.{a,b,#} e.{a,b,e} f.{#} 答案:(1)B (2)E (3)A (4)C (2)FOLLOW(S)=(1),FOLLOW(T)=(2),FOLLOW(R)=(3),FOLLOW(D)=(4). 可选项有: A.{D} B.{A,B} C.{A,B,#} D{#} E.{D,#} (3)该文法的LL(1)分析表为(5). 可选项有: A. A B D E # S RT ET T DR DR E R DR E D A BD B. A B D E # S RT RT RT ET T DR DR E R DR D A BD C. A B D E # S RT ET T DR DR E R E E DR E D A BD D. A B D E # S RT RT RT ET RT T DR DR E R E E DR D A BD 6.已知文法G[E]:

E→TE' E'→+TE'|E T→FT'LLOW(F)=(1),FIRST(T')=(2).可选项有: A.{*,+} B.{*.E} C.{+,#,}}E,{#,}} F.{*,+,#,},ID}

四、思考题

1. 对下面的文法G:

F→(E)|ID{*,+,#,}} FO D. E→TE’ E’→+E|ε T→FT’ T’→T|ε F→PF’ F’→*F’|ε P→(E)|a|b|∧

(1) 计算这个文法的每个非终结符的FIRST集和FOLLOW集。 (2) 证明这个文法是LL(1)的。 (3) 构造它的预测分析表。 2. 已知文法G[S]如下:

S → MH∣a H → LSo∣ε K → dML∣ε L → eHf M → K∣bLM

判断该文法是否是LL(1)文法。如果是构造LL(1)分析表。 3.证明下述文法不是LL(1)的。

S→C$ C→bA|aB A→a|aC|bAA B→b|bC|aBB

你能否构造一等价的文法,使其是LL(1)的?并给出判断过程。 4.证明表达式文法:

E→E+T∣T T→T*F∣F F→(E)∣i

为LL(1)文法。

第七章

一.填空题

1.自底向上分析方法是一种 ① 的过程,当分析的栈顶符号串形成句柄 时采取 ② 动作。

2.编译程序使用的中间代码有多种形式,常见的有 ① , ② , ③ ,

和树形结构。

3.LR(1)文法的含义:L表明自 ① R表明自上向下的 ② ,1表明需 ③ 。

4.自底向上分析的关键问题是在分析过程中如何确定 ① ,自底向上分析的 移进归约过程是自上向下分析 ② 推导的逆过程。 5.文法LR(0)的分析表中Si中的S表示 ① i表示 ② 。 6. 文法LR(0)的分析表中rj中的r表示 。 7.LR分析器的关键部分是 的构造。

二 判断题

( ) 20.拓广文法的开始符号S′只会在产生式的左部出现。

( ) 21.LR(0)项目集规范族的项目类型分为四种:其中移进项目是形如A->α·aβ,

a∈V

( ) 22.LR项目集规范族的项目类型中归约项目是形如A->β·, β∈V

*

( ) 23.LR项目集规范族的项目类型中待约项目是形如A->α·Bβ,B∈V

三.选择题

1.下列文法:

S→AA A→Aa|a

不是LR(1)文法,理由是( ) 可选项有:

a.FIRST(S) ∩ FIRST(A) ≠Ф b.FIRST(A) ∩ FOLLOW(A) ≠Ф c.FIRST(Aa) ∩ FIRST(a) ≠Ф d.都不是

2.设有文法(0)S`→S (1) S→rD

(2)D→D,i (3) D→i

如果构造LR(0)项目集规范族,第一个项目集I0中应有(1) ;第Ii项目集中若有一个S→r.D项目,则该项目集中一定还含有(2) (1) S`→.S (2) S`→S. (3) S→.rD (4) S→r.D (5) S→rD. (6) D→.D,i (7) D→D.,i (8) D→D,.i (9) D→D,i. (10) D→.i (11) D→i. 可选项有: a(1) (3)

b(1) (3) (4) c(6) (10)

d(6) (7) (9) 3.设有文法G:

(0) S`→S (1) S→aAd (2) S→bAc(3) S→bed (4) A→e

如果构造LR(1)项目集规范族,第一个项目集I0中应有(1) ;第Ii项目集中若有一个S→a.Ad,#项目,则该项目集中一定还含有(2) (1) S`→.S,# (2) S`→S.,# (3) S→.aAd,# (4) S→a.Ad,# (5) S→aA.D,# (6) S→aAd.,# (7) S→.bAc,# (8) S→b.Ac,# (9) S→bA.C,# (10) S→bAc.,# (11) S→.bed,# (12).S→b.ed,# (13) S→be.D,# (14) S→bed.# (15) A→.e,d (16) A→e.,d (17) A→.e,c (18) A→e.,c 可选项有: a(1)

b(1) (3) (7) (11) c(15)

d(17)

4.LR分析法的归约过程是规范推导( 推导)的逆过程,所以LR分析过程是一种规

范归约过程.a 最右 b最左 5.设有文法G:

(0) S→AS|ε (1) A→aA|b

如果构造LR(1)项目集规范族,FIRST(S)={ (1) } a. a,b b.a,b,ε c.a,b,# d.ε


《编译原理》训练题1(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Java实训报告 - greenfoot游戏制作

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: