考虑以下语言:
L1 = {anbncm | n, m > 0}
L2 = {anbmcm | n, m > 0}
下列哪一项是FALSE?
(A) L1∩L2是上下文无关的语言
(B) L1 U L2是上下文无关的语言
(C) L1和L2是上下文无关的语言
(D) L1∩L2是上下文相关的语言答案: (A)
说明:我们可以使用一个Stack识别给定语言的字符串。这些给定的语言是无上下文的,因此也与上下文相关。
由于CFL在“联合”属性下关闭,因此给定语言的联合也将不受上下文限制。
但是CFL不会在Intersection属性下关闭,因此两个CFL的交点可能不是CFL。
给定L1和L2如果是两种上下文无关的语言,则它们的交集L1∩L2不是上下文无关的,因为我们无法借助一个Stack来识别结果语言的字符串:
L1 = {a n b n c m | n> 0且m> 0}且L2 = {a m b n c n | n> 0和m> 0}
L3 = L1∩L2 = {a n b n c n | n> 0}不是上下文无关的。
因此,选项(a)为假。
有关关闭属性,请参见Wikipedia页面。
这个问题的测验