我模糊地回忆起{a ^ n b ^ n c ^ n is,n> = 0}不是无上下文的。
但不是以下有效的上下文无关语法捕获上述
S - > ABCS S - >空
引用维基百科:
“在形式语言理论中,无上下文语法(CFG)是一种形式语法,其中每个生成规则都是形式 V→w 其中V是单个非终结符号,w是一串终端和/或非终结符(w可以为空)。“
答案 0 :(得分:3)
S - > abcS产生类似的东西(abc)^ n而不是^ n b ^ n c ^ n
答案 1 :(得分:2)
您编写了一个生成规则,生成abc ^ n,而不是^ n b ^ n c ^ n。
答案 2 :(得分:2)
对于n = 2,生产不应该是:aabbcc?但你的示例语法不会产生abcabc吗?
答案 3 :(得分:2)
万一你想知道为什么它不是一个无上下文语法,这里有一个简单的解释:
无上下文语法是一种语法,可以通过下推自动机识别,该自动机是一个有限状态自动机,并添加了一个堆栈。
CFG的一个例子是^ n b ^ n。如果你考虑一下,我们可以在我们看到的每个“a”上为我们的堆栈推送一个令牌,并为我们看到的每个'b'在堆栈中弹出一个令牌。如果我们,我们将在任何时候失败 - 弹出后按下一个标记('b'后跟'a') - 完成处理字符串,但我们仍然有堆栈上的令牌(更多'比'b'更多') - 尝试弹出一个空堆栈(更多'b比'a')
如果您考虑如何使用下推式自动机识别^ n b ^ n c ^ n,您可能会意识到在玩完一些游戏后这是不可能的。
希望有所帮助。