stringtranslate.com

Lenguaje basado en objetos

El término lenguaje basado en objetos puede usarse en un sentido técnico para describir cualquier lenguaje de programación que utilice la idea de encapsular el estado y las operaciones dentro de objetos . Los lenguajes basados ​​en objetos no necesitan admitir la herencia o la subtipificación , pero aquellos que sí lo hacen también se denominan orientados a objetos . Los lenguajes basados ​​en objetos que no admiten la herencia o la subtipificación generalmente no se consideran verdaderos lenguajes orientados a objetos.

Ejemplos de lenguajes orientados a objetos , en orden cronológico aproximado, incluyen Simula , Smalltalk , C++ (cuyo modelo de objetos se basa en el de Simula), Objective-C (cuyo modelo de objetos se basa en el de Smalltalk), Eiffel , Xojo (anteriormente REALbasic), Python , Ruby , Java , Visual Basic .NET , C# y Fortran 2003. Ejemplos de un lenguaje que está basado en objetos, pero no orientado a objetos, son las primeras versiones de Ada , Visual Basic (VB) y Fortran 90. Todos estos lenguajes admiten la definición de un objeto como una estructura de datos, pero carecen de polimorfismo y herencia.

En la práctica, el término basado en objetos se suele aplicar a aquellos lenguajes basados ​​en objetos que no son también orientados a objetos, aunque todos los lenguajes orientados a objetos también lo son, por definición. En cambio, los términos basado en objetos y orientado a objetos se utilizan normalmente como alternativas mutuamente excluyentes, en lugar de como categorías que se superponen.

A veces, el término basado en objetos se aplica a los lenguajes de programación basados ​​en prototipos , verdaderos lenguajes orientados a objetos que carecen de clases, pero en los que los objetos heredan su código y datos directamente de otros objetos de plantilla . Un ejemplo de un lenguaje de programación basado en prototipos de uso común es JavaScript .

Tanto los lenguajes basados ​​en objetos como los orientados a objetos (ya sean basados ​​en clases o basados ​​en prototipos) pueden ser objeto de una comprobación de tipos estática . La comprobación estática de los lenguajes basados ​​en prototipos puede ser difícil, porque estos lenguajes a menudo permiten que los objetos se amplíen dinámicamente con un nuevo comportamiento, e incluso que se modifique su objeto padre (del que heredan) en tiempo de ejecución . [1] [2]

Referencias

  1. ^ Wegner, Peter (diciembre de 1987). "Dimensiones del diseño de lenguajes basados ​​en objetos" (PDF) . En Meyrowitz, Norman (ed.). Actas de congresos sobre sistemas, lenguajes y aplicaciones de programación orientada a objetos - OOPSLA '87 . Vol. 22. págs. 168–182. doi :10.1145/38765.38823. ISBN 0897912470.S2CID819420  .​
  2. ^ Barbey, S.; Kempe, M.; Strohmeier, A. (1993). "Programación orientada a objetos con Ada 9X". Borrador de informe técnico . Laboratorio de ingeniería de software del Instituto Federal Suizo de Tecnología de Lausana . Consultado el 15 de diciembre de 2013 . Ada 83 en sí no se considera generalmente orientado a objetos; más bien, según la terminología de Wegner [Weg 87], se dice que está basado en objetos, ya que proporciona solo una forma restringida de herencia y carece de polimorfismo.

Véase también