形式文法的基本原理与常见概念
1. 形式文法的基础定理
在形式文法领域,有一个重要的结论:由普通文法描述的语言 $L$ 是 $k$ 对括号的 Dyck 语言 $D_k$ 与正则语言 $M$ 的交集的同态像,即 $L = h(D_k ∩ M)$。经典证明常依赖于使用擦除同态,不过也有使用非擦除同态的更强形式。若 $L$ 中所有字符串长度为偶数,仅使用符号到符号的同态就足够了。
定理 2 指出,对于每个字母表 $\Sigma$,存在一个数 $k \geqslant 1$,使得语言 $L \subseteq (\Sigma^2)^*$ 能由普通文法描述,当且仅当存在一个基于 $k$ 对括号字母表的正则语言 $M$,以及一个将每个括号映射到 $\Sigma$ 的符号到符号同态 $h$,满足 $L = h(D_k ∩ M)$。简单来说,如果一个语言由普通文法定义,那么它是通过有限自动机检查嵌套括号结构,并将括号重命名为 $\Sigma$ 中的符号得到的。
Yoshinaka 等人将 Chomsky - Schützenberger 定理(擦除形式)扩展到多组件文法,使用了 Dyck 语言的适当推广。Salomaa 和 Soittola 以及 Droste 和 Vogler 为加权文法建立了该定理的变体。但此定理无法扩展到合取文法,因为每个递归可枚举集都可表示为合取文法描述语言的同态像。
2. 最难语言定理
Greibach 定理表明,存在一个由普通文法 $G_0$ 描述的固定语言 $L_0$,使得任何由普通文法 $G$ 描述的字母表 $\Sigma$ 上的语言 $L$ 都可通过同态归约到 $L_0$。即 $L$ 可表示为某个同态 $h: \Sig
超级会员免费看
订阅专栏 解锁全文
1404

被折叠的 条评论
为什么被折叠?



