CFL 封闭特性


上下文无关语言关闭于 -

  • 联盟
  • 级联
  • 克林星行动

联盟

令L 1和L 2为两种上下文无关语言。那么 L 1 ∪ L 2也是上下文无关的。

例子

令 L 1 = { a n b n , n > 0}。对应的语法G 1将有P: S1 → aAb|ab

令 L 2 = { cm d m , m ≥ 0}。对应的文法G 2将有P: S2 → cBb| ε

L 1和 L 2的并集,L = L 1 ∪ L 2 = { a n b n } ∪ { c m d m }

相应的语法G将具有附加产生式S → S1 | S2

级联

如果 L 1和 L 2是上下文无关语言,则 L 1 L 2也是上下文无关语言。

例子

语言 L 1和 L 2的并集,L = L 1 L 2 = { a n b n c m d m }

对应的语法G会有附加产生式S → S1 S2

克林星

如果 L 是上下文无关语言,那么 L* 也是上下文无关的。

例子

令 L = { a n b n , n ≥ 0}。对应的语法G就有P: S → aAb| ε

克林星 L 1 = { a n b n }*

相应的语法 G 1将有附加产生式 S1 → SS 1 | ε

上下文无关语言不封闭-

  • 交集- 如果 L1 和 L2 是上下文无关语言,则 L1 ∩ L2 不一定是上下文无关的。

  • 与正则语言的交集- 如果 L1 是正则语言并且 L2 是上下文无关语言,则 L1 ∩ L2 是上下文无关语言。

  • 补语- 如果 L1 是上下文无关语言,则 L1' 可能不是上下文无关的。