在目录中,什么是上下文相关语言?


产生形式为

αAβ → αγβ

其中 α, β ∈ (N ∪ T)*, A ∈ N; γ ∈ (N ∪ T)+,并且允许 S → λ 形式的规则,如果开始符号 S 未出现在任何规则的右侧。

这种语法生成的语言称为上下文相关语言。

  • 每个上下文无关语法也是上下文相关的 =⇒ 上下文无关语言是上下文相关语言的子集(请参见乔姆斯基范式)。

  • 但是,并非每个上下文相关语言都是上下文无关的。

示例

语言 {anbncn, n > 1} 是上下文相关的,但不是上下文无关的。

A grammar for this language is given by:
S → aSBC | aBC,
CB → HB,
HB → HC,
HC → BC,
aB → ab,
bB → bb,
bC → bc,
cC → cc
A derivation e.g. aabbcc, using this grammar is:
S ⇒ aSBC
   ⇒ aaBCBC (using S → aBC)
   ⇒ aabCBC (using aB → ab)
   ⇒ aabHBC (using CB → HB)
   ⇒ aabHCC (using HB → HC)
   ⇒ aabBCC (using HC → BC)
   ⇒ aabbCC (using bB → bb)
   ⇒ aabbcC (using bC → bc)
   ⇒ aabbcc (using cC → cc)

上下文相关语言也可以由单调语法生成,允许任何产生形式,只要没有规则用于使字符串变短(除了一个 S → ∧)!

更新日期: 2021 年 6 月 15 日

4K+ 次浏览

开启你的 职业

通过完成课程获得认证

开始
广告