この演習には少し問題があります。
この文法を考えると:
S -> aX | X
X -> aXb | b | eps
a) 文字列とあいまいであることを示します
b) どの言語が文法を捉えているかを言う
c) 文法を変更し、子孫パーサーを構築する
私による解決策:
a) 文字列 ' ab 'のあいまいさを示します。
- S -> aX -> ab
- S -> X -> aXb -> ab
b) 文法はこの言語を捉えます:
L = {a^n b^n: n >= 0} U {a^n b^m: n=m+1, n,m >= 0} U {a^n b^m: m=n+1, n,m >= 0}
c) 私の問題は、文法を変更してパーサーを構築することです。私はさまざまな文法を試しますが、それらもあいまいです。たとえば、次のようになります。
- G -> X$
X -> aX' | b | eps
X' -> XB | eps
演習用の正しい文法を見つけるのを手伝ってくれますか、それとも入力してください。