L = {b ^ n c ^ n a ^ n,n> = 1}的无上下文语法

时间:2017-04-30 14:44:15

标签: grammar context-free-grammar

我有一种语言L,定义为:L = {b ^ n c ^ n a ^ n,n> = 1} 相应的语法将能够创建如下的单词: BCA bbccaa bbbcccaaa ... 这样的语法怎么样?使两个变量相互依赖是相对简单的,但我在三个变量中做了很多。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

  

L = { b^n c^n a^n , n>=1}

正如评论中所指出的,这是一种不具有上下文的语言的规范示例。可以使用泵浦引理显示无上下文语言。基本上,考虑一个像b^p c^p a^p这样的字符串,其中p是抽水长度然后显示无论你抽哪个部分,你都会失去平衡(基本上,抽出的部分的尺寸小于p,因此无法“跨越”所有三个符号以保持同步。

  

L = {a^m b^n c^n a^(m+n) |m ≥ 0,n ≥ 1}

正如评论中所建议的那样,这也不是上下文。对于无上下文语言,也可以使用泵浦引理来显示它。但是,鉴于上述证据(或接受),有一种更简单的方法。回想一下,常规语言和无上下文语言的交集必须是无上下文的。假设L是无上下文的。那么它必须是与常规语言(b+c)(b+c)* a*的交集。但是,该交集可以表示为b^n c^n a^n(因为m被强制为零),我们知道它不是无上下文的,这是一个矛盾。因此,我们的假设是错误的,L也不是上下文。

相关问题