“该引理由 上下文无关文法 的有限非终结符和 抽屉原理 导出,是排除候选 CFG/PDA、证明非上下文无关性的基本工具,也解释了单栈结构能够复制局部嵌套,却难以同步维护三个独立计数。它与 闭包…”
形式陈述 ​
CFL 对并、连接、Kleene 星、反转、同态、逆同态以及与正则语言求交封闭。并、连接和星可直接组合 CFG 或 PDA;与正则语言求交可构造 PDA 与 DFA 的状态乘积。CFL 一般不对交、补或差封闭;若对补封闭,则结合对并封闭和 De Morgan 律会推出对交封闭,与反例矛盾。
直觉
闭包问题问的是:把两个语言经过某种运算组合后,是否仍能由同一类机器描述。对上下文无关语言,答案呈现鲜明的不对称:一只栈能在多个语法之间选择、顺序拼接或重复,所以并、连接与 Kleene 星号可以通过局部拼接文法实现;交和补却通常需要同时协调两套无界栈式依赖,超出单栈的全局同步能力。有限自动机只增加有限控制,因此 CFL 与正则语言求交仍可由一只栈完成。理解这种能力差异,比单纯背诵闭包表更重要。
例子与边界
若
交不封闭还推出补不封闭:若上下文无关语言对补封闭,那么利用其对并封闭和 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。