
Se le
llama así a cualquier
lenguaje de programación
que implemente los conceptos definidos por la
programación orientada a objetos.
Cabe
notar que los conceptos definidos en la
programación orientada a objetos
no son una condición sino que son para definir que un
lenguaje es
orientado a objetos.
Existen conceptos que pueden estar ausentes en un
lenguaje dado y sin embargo, no invalidar su
definición como lenguaje orientado a objetos.
Quizás las condiciones mínimas necesarias las provee
el
formalismo que
modeliza mejor las propiedades de un sistema orientado
a objetos: los
tipos de datos abstractos.
Siguiendo esa idea, cualquier lenguaje que permita la
definición de
tipos de datos , de
operaciones nuevas
sobre esos tipos de datos, y de instanciar el tipo de
datos podría ser considerado orientado a objetos.
Esta
definición concuerda incluso con ciertos ejemplos
prácticos, que no son considerados dentro de la
programación orientada a objetos,
pero que podrían serlo. Por ejemplo, la programación
de
interfaces gráficas de usuario
para los sistemas
X-Window utilizando
infraestructuras de funciones y
APIs como
Motif,
Xview y
Xlib, son realizadas
usualmente en lenguaje C, pero organizando el código
en una manera que "parecen objetos" (los
Widgets).