1
私はこの言語を生成する文脈自由文法を設計しています:文脈自由文法と逆転
{ w in {a,b}* | w is of the form uvu^R, where u and v are any strings in {a,b}* }
私は、最初の2つの文字列を定義します
U -> aU | bU | _
V -> aV | bV | _
し、それらを組み合わせて:
S -> UV
しかし、どのように文脈自由文法として反転を表現するのですか?
あなたは文法の文脈自由ネスを利用するために必要
この件に関する私の知識はまだありません。このことについて読んでいるうちに、あなたが投稿したものと全く同じ解決策を見つけましたが、それをあまり理解していません。 "ababa"は例えば文法の1行だけで、u = "ab" v = "a"とu^R = "ba"に分割されますか? – mjuopperi
@ Gawwad: "ababa"の構文解析は、 "aUa" - > "a {bUb} a" - > "a {b {a} b} a"です。 –
あなたがより慎重に投稿した解決策を読んで、私は自分自身でそれを解決することができました。私は有限オートマトンと正規表現を使っていましたので、最初はこれらの作業が本当に奇妙に見えました。ご協力ありがとうございました! – mjuopperi