计算理论课后题及答案2

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

第三章 上下文无关语言

3.1 略。

3.2 a. 利用语言A={a m b n c n | m,n ≥0}和A={a n b n c m | m,n ≥0}以及例3.20,证明上下文无关语言在交的运算下不封闭。

b. 利用(a)和DeMorgan 律(定理1.10),证明上下文无关语言在补运算下不封闭。

证明:a.先说明A,B 均为上下文无关文法,对A 构造CFG C 1

S →aS|T|ε

T →bTc|ε

对B,构造CFG C 2

S →Sc|R|ε

R →aRb

由此知 A,B 均为上下文无关语言。

但是由例3.20, A ∩B={a n b n c n |n ≥0}不是上下文无关语言,所以上下文无关语言在交的运算下不封闭。

b.用反证法。假设CFL 在补运算下封闭,则对于(a)中上下文无关语言A,B ,A ,B 也为CFL ,且CFL 对并运算封闭,所以B A ⋃也为CFL ,进而知道B A ⋃为CFL ,由DeMorgan 定律B A ⋃=A ∩B ,由此A ∩B 是CFL,这与(a)的结论矛盾,所以CFL 对补运算不封闭。

3.3 略。

3.4和3.5 给出产生下述语言的上下文无关文法和PDA ,其中字母表∑={0,1}。

a. {w | w 至少含有3个1} S →A1A1A1A

A →0A|1A|ε

b. {w | w 以相同的符号开始和结束}

S →0A0|1A1 A →0A|1A|ε

c. {w | w 的长度为奇数} S →0A|1A A →0B|1B|ε

B →0A|1A

0, ε→ε

0,ε→ε 0,ε→ε 1,ε→ε 0,ε→ε

d. {w | w 的长度为奇数且正中间的符号为0}

S →0S0|1S1|0S1|1S0|0

e. {w | w

S →A1A A →0A1|1A0|1A|AA|ε

f. {w | w=w R }

S →0S0|1S1|1|0

g.

空集

S →S

3.6 给出产生下述语言的上下文无关文法:

a . 字母表{a,b}上a 的个数是

b 的个数的两倍的所有字符串组成的集合。 S →bSaSaS|aSbSaS|aSaSbS|ε

b .语言{a n b n |n ≥0}的补集。见问题3.25

中的CFG:

S →aSb|bY|Ta

T →aT|bT|ε

c .{w#x | w, x ∈{0,1}*且

w R 是x 的子串}。

S →UV

U →0U0|1U1|W

W →W1|W0|#

V →0V|1V|ε

d .{x 1#x 2#⋯#x k |k ≥1, 每一个x i ∈{a,b}* , 且存在i 和j 使得x i =x j R }。 S →UVW

U →A|ε

A →aA|bA|#A|#

V →aVa|bVb|#B|#

B →aB|bB|#B|#

W →B|ε

3.7 略。

0,ε→0 0,0→ε 0,ε→0 1,0→ε 0,1→ε 0,ε→0 0,0→ε

3.8 证明在3.1节开始部分给出的文法G2中,字符串the girl touches the boy with the flower有两个不同的最左派生,叙述这句话的两个不同意思。

<句子>

⇒<名词短语><动词短语>

⇒<复合名词><动词短语>

⇒<冠词><名词><动词短语>

⇒a_<名词><动词短语>

⇒a_girl_<动词短语>

⇒a_girl_<复合名词>

⇒a_girl_<动词>< 名词短语>

⇒a_girl_touches_< 名词短语>

⇒ a_girl_touches_<复合名词><介词短语>

⇒a_girl_touches_<冠词><名词><介词短语>

⇒a_girl_touches_the_<介词><复合名词>

⇒a_girl_touches_the_boy_<介词短语>

⇒a_girl_touches_the_boy_<介词><复合名词>

⇒a_girl_touches_the_boy_with_<复合名词>

⇒a_girl_touches_the_boy_with_<冠词><名词>

⇒a_girl_touches_the_boy_with_the_<名词>

⇒a_girl_touches_the_boy_with_the_flower

含义是:女孩碰这个带着花的男孩

<句子>

⇒<名词短语><动词短语>

⇒<复合名词><动词短语>

⇒<冠词><名词><动词短语>

⇒a_<名词><动词短语>

⇒a_girl_<动词短语>

⇒a_girl_<复合动词><介词短语>

⇒a_girl_<动词>< 名词短语><介词短语>

⇒a_girl_touches_< 名词短语><介词短语>

⇒a_girl_touches_<冠词><名词><介词短语>

⇒a_girl_touches_the_< 名词><介词短语>

⇒a_girl_touches_the_boy_<介词短语>

⇒a_girl_touches_the_boy_<介词><复合名词>

⇒a_girl_touches_the_boy_with_<复合名词>

⇒a_girl_touches_the_boy_with_<冠词><名词>

⇒a_girl_touches_the_boy_with_the_<名词>

⇒a_girl_touches_the_boy_with_the_flower

含义是:女孩用花碰这个男孩

3.9 给出产生语言A={a i b j c k| i,j,k≥0且或者i=j或者j=k}的上下文无关文法。你给出的文法是歧义的吗?为什么?

解:下面是产生A的一个CFG:

相关文档
最新文档