为什么需要终端?我的解决方案足够吗?

时间:2013-04-13 15:05:25

标签: grammar context-free-grammar

我正试图绕过上下文无关的语法,我想我很接近。令我困惑的是这一个问题(我正在练习练习题,因为我在一个月的时间内参加考试):

enter image description here

我想出了这种语言,但我认为这是错误的。

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,我们就会有两个a这给了我们正确的字符串,因为它们不相等,这也可以用b来完成。非常感谢任何建议。

进入元组(G-4-tuple)

V (无终端)= {A,B}
Σ(终端)= {a,b}
P = {} //不太确定如何在R中表达我的解决方案?我是否必须使用测试字符串才能这样做?
S = A

0 个答案:

没有答案