首页 文章

设计一个无上下文语法语言,其中a的长度为b的双倍长度

提问于
浏览
0

我想知道是否有人可以帮助我设计一个无上下文语法

对于{w |的语言| w | a = 2 | w | b}

例如w = aab,aaaabb,aaaaaabbb,baa,aba,aabbaaaba ......

S-> aab |咩| aba | SS | abSa | baSa | aaSb | bSaa不会产生aaabba .

所以我的下一个问题是,拥有一个看起来像这样的语法是不是太模糊了 - >

**

S-> aab | baa | aba | aSab | aSba | aaSb |abSa |aabS | abaS | Saab | Saba | Sbaa | SS | bSaa | baSa | baaS ?

**

先感谢您

2 回答

  • 1

    你发布的所有语法都没有产品 aaabba ,你需要这样的东西:

    S-> HaSa | aHSa | aSHa | aSaH | HSaa | SHaa | SaHa | SaaH | HaaS | aHaS | aaHS | aaSH | epsilon H - > b

    它可以用更短的语法来完成,但我认为这样做 .

  • 0

    试试这个:

    S  -> ε | S1 S
    S1 -> ε | aaS1bS1 | bS1aaS1 | aS1bS1a
    

相关问题