我们如何区分常规语言和无上下文语言?

时间:2015-05-30 05:13:44

标签: regular-language context-free-language

表达我们使用regexp的常规语言和无上下文语言我们可以使用类似堆栈的内存,我知道上下文无关语言有一些规范,如中心嵌入,但我还不确定什么时候我们可以成为知己给定的语言是无上下文的语言?例如,为什么自然语言不是常规语言。除了中心嵌入有什么理由吗?

1 个答案:

答案 0 :(得分:0)

自动机理论指出,有限状态机(FSM)可以处理常规语言。但是,如果某种语言具有“中心嵌入”,则该语言是无上下文语言(CFL),这需要推送自动机(PDA)。

重要的是,PDA是一种FSM,具有类似存储器的附加资源,即“堆栈”或“计数器”,以便跟踪嵌入。

维基百科在Languages that are not context-free中说: -

  

为了证明给定的语言不是无背景的,可以使用   the pumping lemma用于无上下文的语言或许多其他语言   方法,例如Ogden's lemmaParikh's theorem

维基百科在Deciding whether a language is regular中说: -

  

为了证明某种语言不常规,人们经常使用   Myhill-Nerode定理或其他方法中的泵浦引理。

为什么自然语言不是常规语言?

乔姆斯基在(1957)中说:“英语不是常用语言”。至于无语境的语言,“我不知道英语本身是否真的超出了这种分析的范围”。

我正在添加English is such a vast language which can't be recognised by a finite machine