递归方案与可折叠下推自动机:理论与应用探索
1. 递归方案生成词语言
递归方案可作为词语言的生成器。把词视为线性树(即分支因子至多为 1 的树),就能用(非确定性)递归方案生成词语言。有限词“a b c”可表示为应用项 a (b (c e)),其中 a、b、c 是元数为 1 的终结符号,e 是特殊的零元词尾标记,这样的递归方案被称为词语言递归方案。
以下是一些示例:
- 示例 8 :
- 语言 { an bn | n ≥ 0 } 由 1 阶递归方案生成:
- S → F e
- F x → a (F (b x))
- F x → x
- 语言 { an bn cn | n ≥ 0 } 由 2 阶递归方案生成:
- S → F I e
- F ϕ x → F (H ϕ) (c x)
- I x → x
- F ϕ x → ϕ x
- H ϕ y → a (ϕ (b y))
这里 F : (o → o) → o → o,H : (o → o) → o → o,I : o → o。
对于非终结符 F 的重写规则 F x → s,如果 s 的首符号是终结符号 a,则称其为 (F, a)-规则;否则为 (F, ϵ)-规则。若对于每个非终结符 F 和 ξ ∈ Σ ∪ { ϵ },至多有一个 (F, ξ)-规则,且对于每个 F,若有 (F, ϵ)-规则,则不存在 (F, a)-规则(a ∈ Σ),那么该词语言递归方案就是确定性的。示例 8 中的两个方案都是非确定性的,但存在能生成这些语言的确定性递归方案。
超级会员免费看
订阅专栏 解锁全文

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



