无上下文语法和逆转

时间:2010-12-20 20:59:46

标签: reverse context-free-grammar

我正在设计一个无上下文的语法来生成这种语言:

{ w in {a,b}* | w is of the form uvu^R, where u and v are any strings in {a,b}* }

我将前两个字符串定义为:

U -> aU | bU | _
V -> aV | bV | _

然后将这些结合起来:

S -> UV

但是我如何将逆转表达为无上下文语法?

1 个答案:

答案 0 :(得分:2)

你需要利用语法的无上下文(到目前为止你所呈现的只是一个常规语法):

U-> aUa | bUb | a | b | _

会匹配“ababa”和“aabaa”之类的内容,但不会匹配“aabba”。

我会留给你改变你的需要 - 但请记住,你指定的语言可能u是空字符串,因此它会在{a,b}*中生成所有字符串