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


产生形式为

α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+ 次浏览

开启你的 职业

通过完成课程获得认证

开始
广告