私は文脈自由文法について理解を深めようとしていますが、それに近づいていると思います。私を困惑させているのは、この1つの質問です(1か月後に試験があるため、練習問題を行っています):
私はこの言語を思いつきましたが、それは間違っていると思います。
S --> aSb | A | B
A --> aA | Σ
B --> bB | Σ
どうやらこれは正しい解決策です:
S --> aSb | aA | bB
A --> aA | Σ
B --> bB | Σ
私がよく理解していないのは、なぜ私たちが持っているのかということS --> aSb | aA | bB
だけではありませんS --> aSb | A | B
. 端末の必要性は何ですか?代わりに A を呼び出して、そのように端末を取得することはできませんか?
次の文字列を生成できるかどうかをテストしています: aaabbbb
S --> aSb --> aaSbb --> aaaSbbb --> aaaBbbb --> aaabbbb
文字列を正しく生成したと思いますが、よくわかりません。S --> aSb | aA | bB
の理由は、 で開始してaA
から に置き換えるA
とa
、2 つa
の 's があり、それらが等しくないため、正しい文字列が得られるためであると自分に言い聞かせています。これは b でも同様に実行できます。どんなアドバイスでも大歓迎です。
タプルへ (G-4-タプル)
V (端子なし) = {A, B}
Σ (端子) = {a, b}
P = { } // R で私の解を表現する方法がよくわからない? そのためにテスト文字列を使用する必要がありますか?
S = A