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 estados y operaciones dentro de objetos . Los lenguajes basados ​​en objetos no necesitan soportar herencia o subtipos , pero aquellos que sí lo hacen también se denominan orientados a objetos . Los lenguajes basados ​​en objetos que no admiten herencia o subtipos 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 está basado en Simula), Objective-C (cuyo modelo de objetos está basado en Smalltalk), Eiffel , Xojo (anteriormente REALbasic), Python , Ruby , Java , Visual Basic .NET , C# y Fortran 2003 . Ejemplos de un lenguaje 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 están también orientados a objetos, aunque todos los lenguajes orientados a objetos también están basados ​​en objetos, 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 categorías que se superponen.

A veces, el término basado en objetos se aplica a 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 secuencias de comandos 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 en prototipos) pueden ser verificados estáticamente . Verificar estáticamente los lenguajes basados ​​en prototipos puede ser difícil, porque estos lenguajes a menudo permiten que los objetos se extiendan dinámicamente con un nuevo comportamiento, e incluso que se cambie su objeto principal (del cual heredan), en tiempo de ejecución . [1] [2]

Referencias

  1. ^ Wegner, Peter (diciembre de 1987). "Dimensiones del diseño de lenguaje basado 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. S2CID  819420.
  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 en Lausana . Consultado el 15 de diciembre de 2013 . Generalmente no se considera que Ada 83 esté 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 sólo una forma restringida de herencia y carece de polimorfismo.