从类别理论的角度看常规语言


21

我注意到字母表上的常规语言可以自然地看作是一个姿势,甚至是一个格子。此外,串联与空语言一起在此类别上定义了严格的单项式结构,该结构通过连接进行分配(我不确定是否满足)。这在常规语言的理论或实践中是否有用?是否有一些不错的附加条件,例如我们可以将Kleene星定义为一个吗?εΣϵ

这是在Coursera的“编译器”课程中提出的一个问题的副本:https ://class.coursera.org/compilers/forum/thread ? thread_id = 311


4
只是指出该链接需要一个人可以登录到Coursea网站。
戴夫·克拉克

1
使常规语言变成定座词的偏序是什么?仅仅是子集属性?
Suresh Venkat 2012年

@Suresh是的,我想念什么吗?
阿列克谢·阿维琴科

1
不,我只是想知道是否有对语言结构更具体的东西
苏雷什Venkat

@Suresh我当然不像Dave Clarke所引用的人那么聪明或受过教育,所以我只看到最明显的东西:)
Alexei Averchenko 2012年

Answers:


18

将类别理论应用于常规语言和自动机已经做了很多工作。一个起点是最近的论文:

在这些论文的第一篇中,正则表达式的结构是代数处理的,生成的语言是代数处理的。这两个视图集成在双代数设置中。双代数是一个具有适当分布律的代数-双代数对,它捕获句法项(正则表达式)和计算行为(生成的语言)之间的相互作用。本文的基础是代数和余数,计算机科学在通用代数和余数的保护下处理了代数和余数,而不是在数学(组等)中看到的东西。

第二篇论文使用的技术来自对代数(模块等)和余数的更传统的数学处理,但恐怕我不知道细节。

据我所知,这两个星都未将克莱恩星视作附属。

更一般而言,有很多工作将类别理论应用于自动机而不是正则表达式。这项工作的样本包括:

最后,还有关于迭代理论的工作,即迭代理论: Stephen L. Bloom和ZoltánÉsik 的迭代过程的等式逻辑,着重于迭代(例如Kleene star),但从更一般的角度来看,常规语言只是属于理论的一件事。


2
对于自动机有也books.google.co.uk/...
拉杜格里戈里

1
不幸的是,术语“代数”被过度使用。“代数”的含义是通用代数结构,用于通用代数,函子代数和monad代数。Bart Jacobs的论文正在谈论这些。在环/模块理论中定义了一种更具体的结构,称为“ 代数 ”。詹姆斯·沃辛顿(James Worthington)的论文正在处理这些问题。在我看来,沃辛顿的作品有趣得多,但我认为我们只是从头开始。
Uday Reddy 2012年

Bart论文的非收费墙链接:repository.ubn.ru.nl/handle/2066/36207
Turion

12

实际上,我认为您正在寻找的是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。销。


1
特别是关于机器理论中Kleene代数的一些经典附加

4

使用类别理论的护目镜观察世界称为分类。有时它会产生非常好的和令人惊讶的结果。物理学家已经开始说,将一个群体视为一个单一元素的类人猿会产生很大的不同。我开始意识到,将monoid视为一个元素类别也简化了很多事情。(例如,一个简单的动作就是Set中的一个函子。此类事物形成了笛卡尔封闭的类别并构成了对象。因此,它们也具有lambda演算和直觉逻辑!)

您想对常规语言进行分类。我不知道它是否已经完成,或者已经完成并发现没有意思。我还没有看到任何关于它的文章。但是,常规语言的代数结构Kleene代数非常有趣。有关它们的文献很多。但是,在我看来,常规语言和有限自动机的理论遭受了对有限性的过早承诺。(有限的组很有趣而且很重要,但是您不希望“组”的定义一开始就局限于有限性。)因此,抛出有限性并更广泛地研究结构将很有用。

目前正在进行的最有趣的工作与Hoare定义的称为局部双态类的结构有关。已经发现并发Kleene代数就是它们的一个实例局部性Bimonoids和并发是一个积极的研究方向。

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.