Objetivo-J

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 9 de septiembre de 2017; la verificación requiere 1 edición .
Objetivo-J
clase de idioma multiparadigma : orientado a la reflexión, orientado a objetos , funcional , imperativo , secuencias de comandos
Apareció en 2008
Desarrollador 280 norte inc.
sistema de tipos dinámico , débil , pato
sido influenciado Objective-C , JavaScript
Licencia LGPL
Sitio web capuchino.org

Objective-J  es un lenguaje de programación desarrollado como parte de Cappuccino  , un marco de aplicación web. Su sintaxis es casi idéntica a la de Objective-C . Objective-J es para JavaScript lo que Objective-C es para el lenguaje de programación C: es un superconjunto estricto pero compacto. Objective-J agrega herencia tradicional y envío dinámico de estilo Smalltalk/Objective-C a JavaScript. Pure Javascript ya tiene el concepto de orientación a objetos y herencia como lenguaje de tipo prototipo, pero Objective-J agrega la capacidad de usar programación basada en clases a JavaScript.

Los programas escritos en Objective-J requieren preprocesamiento antes de que puedan ser ejecutados por la máquina virtual de JavaScript en un navegador web. Este paso puede tener lugar en tiempo de ejecución en un navegador web utilizando un compilador que traduce los programas Objective-J en código JavaScript puro. El compilador de Objective-J está escrito en JavaScript, por lo que la implementación de programas de Objective-J no requiere ningún complemento especial del navegador.

Aplicación

El primer uso a gran escala de Objective-J está asociado con la creación de la aplicación web 280Slides basada en el marco Cappuccino. Aunque Objective-J se puede usar (y desarrollar) independientemente de Cappuccino, Objective-J se creó principalmente para admitir el desarrollo web basado en Cappuccino.

Sintaxis

Objective-J es un superconjunto de JavaScript, lo que significa que cualquier código JavaScript válido también es código Objective-J válido. El siguiente ejemplo ilustra una definición de Objective-J de una clase llamada Dirección. Esta clase amplía la clase raíz CPObject, que desempeña un papel similar al de NSObject en Objective-C. Con la excepción del nombre del objeto raíz, este código también es un ejemplo de una definición de clase en Objective-C.

Dirección de @implementación : CPObject { CPString nombre ; CPString ciudad ; } - ( id ) initWithName: ( CPString ) aName city: ( CPString ) aCity { self = [ super init ]; nombre = unNombre ; ciudad = aCiudad ; devolver uno mismo ; } - ( void ) setName: ( CPString ) aName { name = aName ; } - ( CPString ) nombre { devolver nombre ; } + ( id ) newAddressWithName: ( CPString ) aName city: ( CPString ) aCity { return [[ self alloc ] initWithName : aname city : aCity ]; } @final

Al igual que con Objective-C, las definiciones de métodos de clase y métodos de instancia comienzan con '+' (más) y '-' (menos) respectivamente.

Gestión de memoria

A diferencia de Objective-C, los objetos en Objective-J no necesitan liberarse, ya que el recolector de elementos no utilizados de JavaScript los libera automáticamente.

Notas

Véase también

Enlaces