计算理论课后题及答案2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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: