上下文免费语法,用于不等数量的符号

时间:2016-01-24 13:50:10

标签: context-free-grammar lexical context-free-language

我知道如何使用相同数量的两个给定元素构建无上下文语法,即。如果我们使用{0,1}

tracer_ptr = new MultipleObjects(this);

然而,我正在努力寻找一种方法来构造一种语法,这种语法比另一种元素具有更多的元素。即。一致两个0比1。 有没有人对如何构建这样的语法有任何想法?

2 个答案:

答案 0 :(得分:1)

编辑:(更正)以下力量至少有一个超过1的0:

S->T0S | T0T
T->0T1T | 1T0T | ε

所以现在,通过重复相同的模式添加一个0应该不会太难......

这样做以下语法回答了问题:

S->T0S | T0T
T->0T1T | 1T0T 
T->U0T | U0U
U->0U1U | 1U0U | ε

答案 1 :(得分:0)

我找到了一个很好的答案:

S->P0P0P
P->PP
P->0P1
P->1P0
P->ε

它应该是一个两个多于0的字符串,并且可以很容易地扩展到更大的数字。