OOP是否基于数学的任何分支? [英] Is OOP based on any branch of mathematics?

查看:56
本文介绍了OOP是否基于数学的任何分支?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道关系数据库是基于集合论的,功能编程是基于lambda演算的,逻辑编程是基于逻辑的(当然是:)),现在我想到了;我不确定命令式和通用编程是否也基于任何特定的数学分支.

I know relational databases are based on set-theory, functional programming is based on lambda calculus, logic programming is based on logic (of course :)), and now that I think of it; I'm not sure if imperative and generic programming is based on any particular branch of mathematics either.

推荐答案

OOP并非源于任何严格的形式主义,但确实是一种形式主义.已经进行了许多尝试来正确定义形式主义.最著名的工作是由Luca Cardelli完成的: http://lucacardelli.name/indexPapers.html (请参见整个对象"部分)

OOP does not originate from any strict formalism, but it is a formalism indeed. There were a number of attempts to define that formalism properly. Most notable work is done by Luca Cardelli: http://lucacardelli.name/indexPapers.html (see the whole "Objects" section)

即时编程可以基于任何与Turing等效的形式主义,包括lambda微积分,SK逻辑,Turing抽象机,Markov算法或任何其他类似的术语重写系统(TRS).通用编程没有什么不同,它是一种术语重写系统.

Imperative programming could be based on any Turing-equivalent formalism, including lambda calculus, SK logic, Turing abstract machine, Markov algorithms, or any other similar Term Rewriting System (TRS). Generic programming is not any different, it is a term rewriting system of a sort.

因此,对于最常见的数学基础而言,您需要深入到术语重写系统中的所有内容.

So, for the most common mathematical grounds for literally everything you'd need to dig into term rewriting systems.

最近的工作是AbdelGawad在莱斯大学的最新工作.他建立了称为OOP的主流OOP(例如Java,C#,C ++,Scala,X10等)的数学模型.这是他博士论文的链接 http://scholarship.rice.edu/handle/1911/70199

A more recent work is AbdelGawad's recent work at Rice University. He builds a mathematical model of mainstream OOP (eg, Java, C#, C++, Scala, X10, etc) called NOOP. Here is a link to his PhD thesis http://scholarship.rice.edu/handle/1911/70199

这篇关于OOP是否基于数学的任何分支?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆