“Type 2 上下文无关语言:规则形如 $A\to\gamma$,左侧只有一个非终结符,与上下文无关文法及下推自动机对应。”
形式陈述 ​
上下文无关文法(CFG)是形式文法在产生式左侧上的一种限制。它仍写作四元组
符号、开始项和推导约定沿用通用文法;额外要求每条规则都形如
文法生成的语言为
“上下文无关”指规则能否应用只取决于被替换的单个非终结符
直觉
CFG 用递归替换描述嵌套结构。非终结符像尚未展开的结构类别,产生式给出一种合法展开方式;同一非终结符可在任何上下文中按同样规则展开。它比有限自动机多出的力量来自隐式递归深度,可以生成任意层括号或成对计数。文法是生成语言的规格,不自动规定唯一解析、求值顺序或高效解析算法,这些是额外性质。
例子与边界
文法
生成
边界语言
推论与应用
CFG 与下推自动机由CFG–PDA 等价定理刻画同一语言类。允许产生式读取上下文并保持非收缩,会得到更强的上下文有关语言;两者在Chomsky 层级中的位置与严格分离应由层级页承担,而不是混入 CFG 定义。语法树记录具体推导结构,Chomsky 范式与 CYK 算法提供标准化和判定方法。
编程语言语法、配置文件、自然语言片段和递归数据格式常用 CFG 描述;解析器再把终结符流转换为 AST,并处理优先级与歧义。
参考资料
- John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd ed., Pearson, 2006,Chs. 5–7。
- Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013,§2.1。