这个语法是{a ^ 2n b ^ n | n> = 0}上下文是否免费?

时间:2016-01-13 19:48:52

标签: computer-science

这个语法上下文是否免费?

> outfile.txt

1 个答案:

答案 0 :(得分:0)

你要问的对象不是语法,而是语言:一组字符串。一组字符串可能由无上下文语法描述,在某种意义上存在一些语法,其规则生成该字符串集。

在这种情况下,您的集合的扩展如下所示:

{ "", "aab", "aaaabb", "aaaaaabbb", ... }

它是由偶数a - s组成的所有字符串的集合,后跟一半b - s。

可以通过重复以下规则生成此集合:

  1. 空字符串在集合中。
  2. 如果字符串s在集合中,那么字符串"aa" + s + "b"就在集合中。
  3. 也就是说,从集合中的任何字符串开始,我们可以在集合中形成一个新字符串,只需在左侧添加两个a - s并在b上添加{正确的。与空字符串在集合中的基本案例规则一起,这些规则描述整个集合。

    这些规则等同于,并且可以以无上下文语法的形式编写:

    s -> ""
      -> "aa" s "b"
    

    语法是无上下文的,因为它只有形式的规则" a - >符号......":左侧只有一个非终端符号。因此,没有一代依赖于上下文:采用单个符号,并根据一些可用规则单独替换。