在目錄中,什麼是上下文相關語言?


產生形式為

α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+ 次瀏覽

開啟你的 職業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.