由规则S-> S接受空集的语法

时间:2011-09-26 17:14:41

标签: grammar context-free-grammar

这是一个家庭作业问题,我知道我没有错误地回答。我给了:

S -> ''

意味着S产生空字符串。我知道空集和空字符串不一样。据我的教授说,答案是:

S -> S

现在,这个答案对我来说很奇怪:

  1. 永远不会终止。
  2. 这不是一种语言,而是缺少一种语言。
  3. 我从严格的数学观点来理解,我不会得到第二名。但是,语言是否需要终止?拥有一种可以永远发展的语言听起来没问题,但是一个永远不会终止的语言听起来不够错,以为我会问是否有人知道这是否是语言要求。

1 个答案:

答案 0 :(得分:12)

来自Formal Grammar Wikipedia page

  

G的语言,表示为L(G),被定义为可以从起始符号S以有限步数导出的所有句子。

从S开始,将生产规则应用于S给出S.应用规则两次给出S.通过归纳,应用规则任何有限数仍然给出S.因为没有句子可以在有限数量的步骤中导出,语言是空的,所以你的教授是正确的。

定义接受空集的语法的其他方法是L(G) = {}(语言为空)或P = {}(生产规则集为空)。