文脈依存文法に関するウィキペディアの記事に示されている例について、私は混乱しています。
https://en.wikipedia.org/wiki/Context-sensitive_grammar
Disclamer:ウィキペディアの記事の説明セクションをすでに変更しているため、現在の記事の状態は、この質問で説明しているものとは異なります。元のバージョンはこちら:https : //en.wikipedia.org/w/index.php?title=Context-sensitive_grammar&oldid=747616366
次の文法は、開始記号Sを使用して、標準の非コンテキストフリー言語{anbncn:n≥1}を生成します。
- S→abc
- S→a SB c
- c B→WB
- WB→WX
- WX→BX
- BX→B c
- b B→bb
彼らはこの文法が 文脈依存であると直接主張していませんが、次の文はそれを文脈依存であると見なしていることを暗示しています:
ルール3から6は、各cBからBcへの連続的な交換を可能にします(ルールcB→BcはスキームαAβ→αγβに適合しないため、4つのルールが必要です)
したがって、彼らは文脈依存文法規則の標準的な形に訴えます:αAβ→αγβ、文法全体が文脈依存であることを意味します。
私が混乱しているのはルール#3で、これはスキームαAβ→αγβに適合しないようです。ここではターミナルを一部と見なし、変数をスキームのと見なします。は空です。これは、が同じ場所()に保存される必要があるため、が生成できないことを意味します。
私は何かを見逃したのですか、またはこの文法が実際に誤ってここに配置されたのですか(実際の状況依存ではないため)。