context free language P
与regular language Q
的交集,据说总是context free
,但我仍然不明白为什么它是无上下文但不是常规的。
这种交集生成的语言包含PDA
和DFA
都接受的字符串。由于所有常规语言都是无上下文的,并且它被DFA接受,不应该是regular language
?
答案 0 :(得分:1)
字母表中所有字符串的集合是常规语言,其与该字母表中任何其他语言 L 的交互正好是 L 。
或者换句话说,不仅仅是接受哪些字符串。同样相关的是不接受哪些字符串。
答案 1 :(得分:0)
以下引理是众所周知的。
引理2.1如果L是没有e的无上下文语言,那么Chomsky就有语法
正常
生成L的表单。
引理2.2如果L =∅且L是正则的,则L是常规语言A1的结合,...,An
,其中
每个Ai都被DFA接受,只有一个最终状态。
我们现在证明我们的主要定理。
定理2.3如果L1是无上下文语言而L2是常规语言,则L1∩L2
上下文
自由的。
证明:
我们做e∈/ L1和L2 =∅的情况。我们留给读者的所有其他情况。
ByLemma2.1wecanassumethereexistsaChomskynormalformgrammarG =(N,Σ,S,P)
表示L1。引理2.2 L2 = A1∪___∪其中每个Ai被识别的每个Ai
一个DFA
只有一个最终状态。注意
L1 ∩L2 = L1 ∩(A1 ∪___∪An) = U(L1 ∩Ai).
i=1
由于CFL在联盟下关闭(这可以使用CFG证明,所以这不是
作弊)
我们只需要显示L1与DFA识别的常规语言的交集
与
一个最终状态是CFL。设M =(Q,Σ,δ,s,{f})为具有恰好一个最终状态的DFA。
我们为L1∩L(M)构造CFG G0 =(N0,Σ,S0,P0)。
非终结符N0是三元组[p,V,r],其中V∈N和p,r∈Q。
对于P中的每个生产A→BC,对于每个p,q,r∈Q我们都有生产
[p,A,r]→[p,B,q] [q,C,r]
P0中的。
有生产
在P0
[p,A,q]→σ