我注意到字母表上的常规语言可以自然地看作是一个姿势,甚至是一个格子。此外,串联与空语言一起在此类别上定义了严格的单项式结构,该结构通过连接进行分配(我不确定是否满足)。这在常规语言的理论或实践中是否有用?是否有一些不错的附加条件,例如我们可以将Kleene星定义为一个吗?ε
这是在Coursera的“编译器”课程中提出的一个问题的副本:https ://class.coursera.org/compilers/forum/thread ? thread_id = 311
我注意到字母表上的常规语言可以自然地看作是一个姿势,甚至是一个格子。此外,串联与空语言一起在此类别上定义了严格的单项式结构,该结构通过连接进行分配(我不确定是否满足)。这在常规语言的理论或实践中是否有用?是否有一些不错的附加条件,例如我们可以将Kleene星定义为一个吗?ε
这是在Coursera的“编译器”课程中提出的一个问题的副本:https ://class.coursera.org/compilers/forum/thread ? thread_id = 311
Answers:
将类别理论应用于常规语言和自动机已经做了很多工作。一个起点是最近的论文:
在这些论文的第一篇中,正则表达式的结构是代数处理的,生成的语言是代数处理的。这两个视图集成在双代数设置中。双代数是一个具有适当分布律的代数-双代数对,它捕获句法项(正则表达式)和计算行为(生成的语言)之间的相互作用。本文的基础是代数和余数,计算机科学在通用代数和余数的保护下处理了代数和余数,而不是在数学(组等)中看到的东西。
第二篇论文使用的技术来自对代数(模块等)和余数的更传统的数学处理,但恐怕我不知道细节。
据我所知,这两个星都未将克莱恩星视作附属。
更一般而言,有很多工作将类别理论应用于自动机而不是正则表达式。这项工作的样本包括:
Bloom SL; Sabadini N .;Walters RFC 矩阵,机器和行为。应用分类结构,第4卷,第4号,1996年12月,第343-360(18)页
迈克尔·阿尔比(Michael A. Arbib),欧内斯特·G·马内斯(Ernest G. Manes):分类学家对自动机和系统的看法。类别理论在计算和控制中的应用1974:51-64
MA Arbib和EG Manes。伴随机器,状态行为机器和对偶性。Journal of Pure and Applied Algebra,6:313-344,1975。
最后,还有关于迭代理论的工作,即迭代理论: Stephen L. Bloom和ZoltánÉsik 的迭代过程的等式逻辑,着重于迭代(例如Kleene star),但从更一般的角度来看,常规语言只是属于理论的一件事。
实际上,我认为您正在寻找的是Kleene代数。请参阅Dexter Kozen的经典文章。他公理化了Kleene-star。我认为这是您感兴趣的第一步。
Kleene代数和正规事件的代数的完备性定理。 资讯与计算,1994年5月,110(2):366-390。
那篇文章没有使用范畴论,而是给出了Kleene代数的等式公理化,其结构包括常规语言的结构。带有测试的Kleene代数可以看作是正则表达式的扩展,用于对具有循环和条件(但没有赋值)的简单程序进行建模。此扩展对于以纯代数方式推理这样的简单程序很有用。
关于Kleene代数的共代数理论,并带有检验。技术报告。康奈尔大学,2008年3月。
正如您所观察到的,常规语言形成具有附加结构的布尔代数。尼克·皮彭格(Nick Pippenger)从斯通二元性的角度研究了这种结构。
常规语言与石头二重性。尼古拉斯·皮蓬格(Nicholas Pippenger)。理论计算系统,1997:121-134。
语言识别的双重性方法近来备受关注,并已用于获得有关语言识别的新结果。
正规语言的对偶与方程理论。M.Gehrke,S.Grigorieff,J.-E。销。
使用类别理论的护目镜观察世界称为分类。有时它会产生非常好的和令人惊讶的结果。物理学家已经开始说,将一个群体视为一个单一元素的类人猿会产生很大的不同。我开始意识到,将monoid视为一个元素类别也简化了很多事情。(例如,一个简单的动作就是Set中的一个函子。此类事物形成了笛卡尔封闭的类别并构成了对象。因此,它们也具有lambda演算和直觉逻辑!)
您想对常规语言进行分类。我不知道它是否已经完成,或者已经完成并发现没有意思。我还没有看到任何关于它的文章。但是,常规语言的代数结构Kleene代数非常有趣。有关它们的文献很多。但是,在我看来,常规语言和有限自动机的理论遭受了对有限性的过早承诺。(有限的组很有趣而且很重要,但是您不希望“组”的定义一开始就局限于有限性。)因此,抛出有限性并更广泛地研究结构将很有用。
目前正在进行的最有趣的工作与Hoare定义的称为局部双态类的结构有关。已经发现并发Kleene代数就是它们的一个实例。 局部性Bimonoids和并发是一个积极的研究方向。