为语言 L = {anbm| 生成上下文无关文法 m≠n}?
上下文无关文法是一个四元组 G = (N, T, P, S),
在哪里,
N 是非终结符的有限集,
T 是终结符的有限集,N ∩ T = ∅,
P 是 A → α 形式的有限产品集,
其中 A ∈ N, α ∈ (N ∪ T)*,
S 是起始符号,S ∈ N。
为语言构造一个上下文无关文法,L = {anbm| m≠n}
情况1
n > m - 我们生成一个具有相同数量的 a 和 b 的字符串,并在左侧添加额外的 a -
S → AS1, S1 → aS1b, S1 → λ, A → aA, A → a
案例二
n < m - 我们在右侧添加额外的 b -
S → S1B,B → bB,B → b。
典型推导
S ⇒ AS1 ⇒ aAS1 ⇒ aaAS1 ⇒ aaaS1 ⇒ aaaaS1b ⇒ aaaab 或
S ⇒ S1B ⇒ aS1bB ⇒ aS1bb ⇒ abb
考虑上下文无关语法和语言的另一个示例
每个正则文法都是上下文无关的,因此正则语言也是上下文无关的。
常规语言家族是上下文无关语言家族的一个适当子集。
例子
令 G = ({S}, {a, b}, P, S) 与
P = {S → aSa, S → bSb, S → λ}。
典型推导 - S ⇒ aSa ⇒ aaSaa ⇒ aabSbaa ⇒ aabbaa。
L(G)= {wwR | w ∈ {a, b}*}
以上是 为语言 L = {anbm| 生成上下文无关文法 m≠n}? 的全部内容, 来源链接: utcz.com/z/358116.html