cdsfiui 发表于 2016-09-10 20:19

关于语法二义性的2个问题,我的猜想对吗?

自学中遇到的问题:
文法G=({A,B,S},{a,b,c}P,S}
其中P为
S->Ac|aB
A->ab
B->bc

那么这个句子其实只有一个接受的句子abc,那么,G是二义的吗? 我觉得是的,因为有两个不同的语法树都可以得到abc

    S
   / \
   Ac
/ \
ab

    S
   /\
   aB
   / \
   bc
对吗?
-------------------------------
如果这是二义的,那么另一个文法:
S->S(S)S|ε
其中ε是空串
它生成的语言应该是{()}*,那么()()有不止一种生成方式,它也是二义的文法,对吗?

请问S->SS*|SS+|a文法如何得到aa+a*句子?

从文法我看到,加号+似乎只能出现在句子的最后。那么如何能得到aa+a*这样的句子呢?


lxyscls 发表于 2016-09-11 12:50

回复 1# cdsfiui

S -> SS* -> SS+S* -> aa+a*,这个+号应该表示重复前一个的意思吧,不是实际的'+',*也是重复0或多个前一个,不是实际的'*'
页: [1]
查看完整版本: 关于语法二义性的2个问题,我的猜想对吗?