我们必须找到L(G),其中语法G给出为 -
S-> AB | CD,A-> aA | a,B-> bB | bC,C-> cD | d,D-> aD | AD < / p>
我已经尝试了这个问题,但它的递归非常深,我无法终止字符串。[我知道A会在n步之后生成^ n但是D,C,B怎么样?]
直到现在我尝试如下 -
A->aA->aaA->....->a^(n-1)A (after n-1 steps)->a^n
B->bB->bbB->....->b^(m-1)B (after m-1 steps)->b^(m-1)bC->b^(m-1)bbC->...b^(m-1)b^(n-1)C->b^kC
C->cD->ccD->...->c^(p-1)D or c^(p-1)d[Thus we will consider as C->c^pD or C->c^pd]
D->aD->aaD->...->a^(q-1)D->a^(q-1)a^nD[Thus we will consider D->a^rD]
现在B依赖于C而C取决于D和D取决于它自己(即D自身重复为D-> a ^ rD)
那么如何才能找到不终止的语言语法?
答案 0 :(得分:1)
D不会产生一串终端,所以它没用,可以省略,包括所有带D的规则。
简化的语法是:
S->AB, A->aA|a ,B->bB|bC, C->d
语言将是:{a ^ m b ^ n d:m,n&gt; = 1}