是否有天生的模棱两可和确定性的上下文无关语言?


36

当且仅当确定性下推式自动机可以接受上下文无关的语言时,我们才将其称为确定性语言,否则将其称为不确定性。

当且仅当生成该语言的所有无上下文语法都模棱两可,否则,我们才将上下文无关的语言固有地称为歧义。

确定性,明确语言的示例是以下语言: 一种不确定的,明确的语言的示例是以下语言: { 瓦特{ 一个b } * | w = w R }

{一种ñbñ{一种b}|ñ0}
{w{一种b}|w=w[R}

Wikipedia中,固有的模棱两可的上下文无关语言的一个示例是以下上下文无关语言的联合,它们也必须是上下文无关的:

大号={一种ñbCdñ{一种bCd}|ñ0}{一种ñbñCd{一种bCd}|ñ0}

现在开始提问:

  1. 是否知道是否存在确定性,本质上模棱两可的上下文无关语言?如果是这样,是否有一个(简单的)示例?
  2. 是否知道是否存在不确定的,本质上模糊的上下文无关语言?如果是这样,是否有一个(简单的)示例?

显然,由于存在固有的模棱两可的上下文无关语言(是示例),因此,如果知道是确定性还是不确定性,对这些问题之一的答案很容易。我还认为,如果存在确定性,那么肯定也将存在不确定性……但是我之前对此感到很惊讶。如果这是一个众所周知的著名结果,请多加参考,并事先表示歉意(在这种情况下,我完全不知道)。大号大号

Answers:


30

大号大号

当且仅当某种非确定性自动机可以识别某种语言时,该语言才能通过某种上下文无关的语法来描述。作为这种情况的一个特例,可以通过某些不确定的自动机来解析固有的模棱两可的上下文无关文法。

最后要说明的是,任何确定性下推自动机也是不确定性的(对于任何可以不确定性的事物,对于不确定性的合理定义都是这种情况)。


对于所有确定性CFL并不是天生就模棱两可的事实,请参考+1。实际上,这也回答了另一个问题:由于存在一种固有的模棱两可的语言,并且不是确定性的,因此它必须是不确定性的(请注意,我对不确定性CFL的定义不是标准的,因为它排除了确定性CFL;这是我的错误用术语)。无论如何,您都给出了问题(2)的示例,并证明了问题(1)是不可能的。我将拭目以待,看看是否有人再详细说明,但否则会认为这是正确的。谢谢!
Patrick87 2012年

0

阅读Wikipedia和答案以及您对此的评论,请重新(Q2)直言不讳,所有固有的歧义CFL在std defn下都必须不确定(包括您自己的示例!)。碰到了这个裁判

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.