2010-06-05 32 views
21

Sé que las bases de datos relacionales se basan en la teoría de conjuntos, la programación funcional se basa en el cálculo lambda, la programación lógica se basa en la lógica (por supuesto :)), y ahora que lo pienso; No estoy seguro si la programación imperativa y genérica se basa en cualquier rama particular de las matemáticas tampoco.¿OOP se basa en cualquier rama de las matemáticas?

+0

He oído que proviene de la arquitectura de edificios :) – hgulyan

+1

@hgulyan, no, eso es [Patrones de diseño] (http://en.wikipedia.org/wiki/Design_pattern). OOP es anterior a estos. –

+0

@ Péter Török, tiene razón :) – hgulyan

Respuesta

25

OOP no se origina de ningún formalismo estricto, pero es un formalismo de verdad. Hubo una serie de intentos para definir ese formalismo correctamente. El trabajo más notable lo realiza Luca Cardelli: http://lucacardelli.name/indexPapers.html (vea toda la sección "Objetos")

La programación imperativa podría basarse en cualquier formalismo equivalente de Turing, incluyendo cálculo lambda, lógica SK, máquina abstracta de Turing, algoritmos de Markov o cualquier otro sistema de reescritura de términos (TRS) similar. La programación genérica no es diferente, es un sistema de reescritura de términos de un tipo.

Por lo tanto, para los motivos matemáticos más comunes, literalmente, todo lo que necesita para profundizar en los sistemas de reescritura de términos.

Un trabajo más reciente es el trabajo reciente de AbdelGawad en la Universidad de Rice. Él construye un modelo matemático de OOP convencional (por ejemplo, Java, C#, C++, Scala, X10, etc.) llamado NOOP. Aquí hay un enlace a su tesis doctoral http://scholarship.rice.edu/handle/1911/70199

3

programación orientada a objetos tiene sus orígenes en lenguajes de programación como Simula-67 y Smalltalk-80, en lugar de cualquier teoría matemática o formalismo. Pero supongo que podría decir que los conceptos de objeto, clase y herencia de OOP son basados ​​en sistemas de categorías y clasificación ingenuos o de sentido común; p.ej. las taxonomías desarrolladas por Linnaeus.

Cuestiones relacionadas