有限和无限语言混淆

Posted

技术标签:

【中文标题】有限和无限语言混淆【英文标题】:Finite and Infinite languages confusion 【发布时间】:2015-07-07 12:46:27 【问题描述】:

我最近开始学习形式语言理论,在有限和无限语言方面遇到了一些问题。

有人告诉我,所有有限语言都是正则的。

但是,阅读给我的笔记,带有产生式的语法:

S --> ab

S --> aabb

S --> aaabbb

虽然产生式生成有限数量的字符串,但它不是常规语言。

但是,带有产生式的语法:

S --> Sb

S --> Tb

T --> Ta

T --> a

它生成 a^m b^n 形式的字符串,这是一个无限的字符串列表,但这种语言被定义为常规语言?

谁能帮我简单理解一下?在我苦苦挣扎时将不胜感激。

【问题讨论】:

【参考方案1】:

理论问题https://cs.stackexchange.com/可能会得到更快的答案,但这里仍然有人可以回答。

您忘记了关系不是对称的。所有有限语言都是正则的,但并非所有正则语言都是有限的。同样,所有常规语言都是上下文无关的,但并非所有上下文无关语言都是常规的。这种关系在 Cleaveland, J.C. & Uzgalis, R.C. 中有很好的说明。 (1977) 编程语言语法,Elsevier North Holland,第 20 页:

【讨论】:

以上是关于有限和无限语言混淆的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法分开无限列表和有限列表?

有限与无限思想

第4章 有限集与无限集

Python成语链接(展平)有限迭代的无限迭代? [复制]

Scala,无限重复有限列表

百度云出品:手机备份照片和视频,无限空间!数量有限,抓紧抢注。