Lev*_*son 13 grammar context-free-grammar
这是一个家庭作业问题,我知道我没有错误地回答.我给了:
S -> ''
Run Code Online (Sandbox Code Playgroud)
意味着S产生空字符串.我知道空集和空字符串不一样.据我的教授说,答案是:
S -> S
Run Code Online (Sandbox Code Playgroud)
现在,这个答案对我来说似乎很奇怪:
我从严格的数学角度理解,我不会得到第二个任何地方.但是,语言是否需要终止?拥有一种可以永远持续下去的语言听起来没问题,但是一个永远不会终止的语言听起来不够错,我以为我会问是否有人知道这是否是语言要求.
Mar*_*ers 12
表示为L(G)的G的语言被定义为可以从起始符号S以有限数量的步长导出的所有那些句子.
从S开始,将生产规则应用于S给出S.应用规则两次给出S.通过归纳,应用规则任何有限数仍然给出S.因为没有句子可以在有限数量的步骤中导出,语言是空了,所以你的教授是对的.
定义接受空集的语法的替代方法是L(G) = {}(语言为空)或P = {}(生产规则集为空).