对于在计算机理论中使用“无限”语言还是“有限”语言,我还不清楚。
我认为麻烦的根源在于,像这样的语言是无限的,因为它可以生成无限(但可数)的字符串。但是,它仍然可以通过有限状态自动机来识别。
Sipser的书没有真正区分这一点也没有帮助(至少据我所知)。样本考试中提出了有关无限/有限语言及其与常规语言的关系的问题。
对于在计算机理论中使用“无限”语言还是“有限”语言,我还不清楚。
我认为麻烦的根源在于,像这样的语言是无限的,因为它可以生成无限(但可数)的字符串。但是,它仍然可以通过有限状态自动机来识别。
Sipser的书没有真正区分这一点也没有帮助(至少据我所知)。样本考试中提出了有关无限/有限语言及其与常规语言的关系的问题。
Answers:
天啊。这似乎是由(旧派)“有限状态语言”术语引起的混淆,“有限状态语言”是今天称为“常规语言”的同义词。
无论如何,这些天接受的有限/无限标准定义只考虑语言的大小:
有限的总是规则的。
无限可以是规则的(有时称为“有限状态”),可确定的(有时称为“递归”),非规则的(非有限状态),不可确定的,等等。
对于在计算机理论中使用“无限”语言还是“有限”语言,我还不清楚。
我认为麻烦的根源在于,像这样的语言是无限的,因为它可以生成无限(但可数)的字符串。但是,它仍然可以通过有限状态自动机来识别。
另一个问题是形式语言理论在使用“语言”一词方面颇为独特。
对于世界上除形式语言理论领域的人们以外的每个人,语言是一种用于交流的言语系统,因此每种言语都有一种形式(其语法)和某种意义(其语义)。形式语言理论(至少是计算机科学中使用的部分)致力于解决如何最好地正式定义语言语法的问题。这全都涉及语言的语法(说话的样子)和形式主义(语言!)之间的关系,例如用于定义语言语法的正则表达式。
因此,在形式语言理论中,“一种语言”被简单地定义为“一组字符串”。它通常不会为语言中的字符串分配含义。
同时,在这种意义上,用于描述语言(例如正则表达式)的形式主义也形成了语言:例如,每个正则表达式都是一个字符串,因此,正则表达式集就是一种语言。但是,对于这些形式主义,语言中的字符串确实具有含义:例如,每个正则表达式的含义都是它所表示的语言。
ab*
(Kleene星号)表示您可以具有零个或多个字符串组合,其中ab
包括潜在的无限数量的字符串:{“”,ab ^ 1,ab ^ 2,ab ^ 3,... 。,ab ^ n}。但是,您仍然可以构建可识别该语言的FSM,因为实际上无法生成无限字符串,当由机器处理所有字符串时,它们必须是有限的,但这并不能使语言本身成为有限的。语言的无限性是理论上的。