Skip to content

上下文无关语言闭包性质

Closure properties of context-free languages

上下文无关语言对并、连接、Kleene 星、同态和与正则语言求交封闭,但不对交和补封闭。

条目类型
定理

形式陈述

CFL 对并、连接、Kleene 星、反转、同态、逆同态以及与正则语言求交封闭。并、连接和星可直接组合 CFG 或 PDA;与正则语言求交可构造 PDA 与 DFA 的状态乘积。CFL 一般不对交、补或差封闭;若对补封闭,则结合对并封闭和 De Morgan 律会推出对交封闭,与反例矛盾。

直觉

闭包问题问的是:把两个语言经过某种运算组合后,是否仍能由同一类机器描述。对上下文无关语言,答案呈现鲜明的不对称:一只栈能在多个语法之间选择、顺序拼接或重复,所以并、连接与 Kleene 星号可以通过局部拼接文法实现;交和补却通常需要同时协调两套无界栈式依赖,超出单栈的全局同步能力。有限自动机只增加有限控制,因此 CFL 与正则语言求交仍可由一只栈完成。理解这种能力差异,比单纯背诵闭包表更重要。

例子与边界

L1={aibicj}L2={aibjcj} 都是 CFL,但交集为 {anbncn},不是 CFL。CFL 与正则语言求交的封闭性常用于泵引理证明中先过滤输入形状。无限并同样不由有限次闭包结论保证。确定性 CFL 有不同的闭包表,不能把一般 CFL 与 DCFL 的结论混用。

L1={aibi:i0}L2={cj:j0},则 L1L2={aibicj} 仍是上下文无关语言:文法先生成匹配的 a,b,再生成任意个 c。上下文无关语言也对与正则语言的交封闭;例如 {aibicj:i,j0} 与正则语言 abcc 相交后得到 {aibic2:i0},仍是上下文无关语言。

交不封闭还推出补不封闭:若上下文无关语言对补封闭,那么利用其对并封闭和 De Morgan 律,就会得到对交封闭,与上述反例矛盾。这里的论证针对一般上下文无关语言;确定性上下文无关语言具有不同的补封闭性质。

推论与应用

这些闭包性质让 语言运算 成为构造新 上下文无关文法 的模块化工具,决定哪些组合与语法过滤能在解析器生成器中安全实现,也能服务于非上下文无关性的归约证明:先假设目标语言属于该类,再与精心选择的正则语言相交,把问题化到已知反例。与 正则语言闭包性质 对照,还能看出有限状态模型和栈模型在布尔运算上的本质差别。

参考资料
  • John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd ed., Pearson, 2006,Chs. 1–9。
  • Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013,Chs. 0–10。
关系图谱8 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组