依赖类型理论中的对象建模(OOP)


13

我对依赖类型理论中的面向对象编程中的对象建模感兴趣。作为一个可能的应用程序,我希望有一个模型,可以描述命令式编程语言的不同功能。

我只能找到一篇关于依赖类型理论中的对象建模的论文,即:
A. Setzer(2006)的依赖类型理论中的面向对象编程。

是否有我遗漏的主题的更多参考文献,或者是否有更新的参考文献?

是否可以为定理证明者(例如Coq或Agda)提供实现(即证明)?

Answers:


6

Bart Jacobs(Nijmegen)和Marieke Huisman在这方面做了一些早期工作。他们的工作基于PVS工具,并依赖于类的联合编码(如果我没记错的话)。请参阅Marieke 在2000年的论文发表页面和2001年的博士学位论文。还要查看您提到的A Setzer论文中Bart Jacobs引用的论文。

那时,他们拥有一种称为LOOP工具的工具,但它似乎已从互联网上消失了。

有一个称为FTfJP(类似于Java的程序的正式技术)的研讨会系列,致力于OO程序的形式验证。无疑,某些工作使用了从属类型理论/高阶逻辑。研讨会系列已经运行了大约14年。




2

您为什么要看依赖类型理论来表示OOP?我们不能用非依赖性计算以令人满意的方式对OOP建模吗?我有一个面向对象的非正式模型,例如当转换为系统F(或者如果要支持泛型,则为Fω)时,OOP是什么样的,而且我看不到类型值依赖会在哪里起作用。

例如,可以使用从属类型为代数数据类型赋予较低级别的含义。您可能可以对OO功能进行这样的低级编码,但是我不确定这比在您的建模语言中添加代数数据类型更好。

也许您想为当前未类型化的OOP构造提供更好的静态语义,例如instance_of后跟一个cast。我可以看到从属类型黑客对于静态推理此类程序很有用。但我不确定是否可以对那些集中于动态角度的操作进行“建模”,这还不止于此。


这不是问题的答案。这不是讨论论坛。
戴夫·克拉克
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.