编译期中答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题(10分)

1. 描述一个语言的文法是(B )

A.唯一的

B.不唯一的

C.可能唯一,也可能不唯一

2. 若文法G定义的语言是无限集,则文法必然是(D )

A.前后文无关文法

B.正规文法

C.二义性文法

D.递归文法

3. 文法 G 产生的的全体是该文法描述的语言。(D)

A.句型

B.终结符集

C. 非终结符集

D. 句子

4. 有限状态自动机可用五元组(VT,Q,δ,q0,Q)来描述,设有

一有限状态自动机M的定义如下:

VT={0,1},Q={q0,q1,q2},Qf={q2},

δ的定义为:

δ(q0,0)=q1 δ(q1,0)=q2

δ(q2,1)=q2 δ(q2,0)=q2

M是一个(A )有限状态自动机,它所对应的状态转换图为( B) ,它所能接受的语言可以用正则表达式表示为 C 。其含义为 D 。

供选择的答案:

A: B:①歧义的 ②非歧义的 ③确定的 ④非确定的

C: ①(0|1)* ②00(0|1)* ③(0|1)*00 ④0(0|1)*0

D: ①由0和1所组成的符号串的集合

②以0为头符号和尾符号、由0和1所组成的符号串的集合

③以两个0结束的,由0和1所组成的符号串的集合

④以两个0开始的,由0和1所组成的符号串的集合

答案 A:③ B:③ C:② E: ④

对下面的陈述,正确的在陈述后的括号内画"√";否则画"×"

1. 任何算符优先文法的句型中不会有两个相邻的非终结符号。 (√ )

2. 任何LL(1)文法都是无二义性的。 ( √)

3. 任何一个LL(1)文法都是一个LR(1)文法,反之亦然。 (×)

4. 有穷自动机接受的语言是正则语言。(T)

5. 若r1和r2是Σ上的正规式,则r1|r2也是。(T)

6. 令Σ={a,b},则Σ上所有以b为首的字构成的正规集的正规式为b*

(a|b)*。(F)

7. 对任何一个NFA M,都存在一个DFA M',使得L(M')=L(M)。(T)

8. 对一个右线性文法G,必存在一个左线性文法G',使得

L(G)=L(G'),反之亦然。(T)

1. 已知文法G[S]:S→(AS) | (b)

A→(SaA) | (a)

试找出符号串(a)和(A((SaA)(b)))的短语﹑直接短语和句柄(如果有的话)。分析∵ S(AS)((a)S)(a))

∴符号串(a))不是文法的句型,因此它没有短语﹑直接短语和句柄。∵S(AS)(A(AS))(A(A(b)))

(A((SaA)(b)))

∴符号串(A((SaA)(b)))是文法的句型,画出该句型的语法树如下图:

2. 设有文法G[N]:

N→SE | E

S→SD | D

E→0 | 2 | 4 | 6 | 8 | 10

D→0| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

试证明文法G[N]有二义性。

此文法所描述的语言是什么?

试写出另一文法G'使L(G')=L(G)且G'是无二义性的。

该文法所描述的语言是所有无符号偶数

的集合(可以0开头)。

改写后的文法G‘[S]为:

N→SE | E

S→SD | D

E→0 | 2 | 4 | 6 | 8

D→0 | 1 | 2 | 3 | 4 | 5| 6 | 7 | 8 | 9

3. 已知文法G[E]:E→E+T | E-T | T

T→T*F | T/F | T

T→(E) | i

证明 E+T*F是它的一个句型,指出这个句型的短语﹑直接短语和句柄。

4. 已知文法G[S]=( {A,B},{a,b,c,d}, P, S ) ,

其中 P 为:S → AB

A → aAb | ab

B → cBd | cd

该文法所生成的语言是什么?

分析∵ SABaAbBa2Ab2B…

a n-1A

b n-1Ba n b n Ba n b n cBd

a n

b n c2Bd2 …

a n

b n

c m-1B

d m-1a n b n c m d m

∴ L(G[S])={a n b n c m d m | n ,m≥1 }

5. 文法G[N]为:

N →ND | D

D →0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

(1) G[N]所生成的语言是什么?

(2) 给出句子0127的最左、最右推导。

6. 给出语言L={1n0m1m0n | n,m≥0}的

文法。

L={ε,01,0011,…,10,1100,…,1010,100110, 110100,11001100…} P: S → 1S0 | 0A1 | ε

A → 0A1 | ε

7. 给出下述文法所对应的正规式:S→0A | 1B

A→1S | 1

B→0S | 0

分析根据正规文法转换成正规式的方法,首先给出该正规文法对应的正规式方程组:

S=0A+1B (1)

A=1S+1 (2)

B=0S+0 (3)

将(2)、(3)代入(1)得

S=01S+01+10S+10 (4)

对(4)使用求解规则得

S=(01|10)(01|10)*

即正规文法所生成语言的正规式是(01|10)(01|10)*。

8. 设字母表Σ={a,b},给出Σ上的正规式 R= b*ab(b|ab)*

1. 试构造状态最小化的DFA M,使得

L(M)=L(R)。

2. 求右线性文法G,使L(G)=L(M)。

对正规式R=b*ab(b|ab)*采用分列法构造NFA,见下图。

对NFA采用子集法构造其等价的DFA的状态转换矩阵,见表。

相关文档
最新文档