Lingo (lenguaje de programación)
Lingo es un lenguaje de programación orientado a objetos (OO) detallado desarrollado por John H. Thompson para su uso en Adobe Director (anteriormente Macromedia Director). Lingo se utiliza para desarrollar software de aplicaciones de escritorio, quioscos interactivos, CD-ROM y contenido Adobe Shockwave.
Lingo es el principal lenguaje de programación de la plataforma Adobe Shockwave, que dominó el mercado de productos multimedia interactivos durante la década de 1990. Se desarrollaron varios juegos de aventuras gráficas con Lingo durante la década de 1990, incluidos The Journeyman Project, Total Distortion, Mia's Language Adventure, Mia's Science Adventure y Didi & Lo mismo ocurre con la serie. Se desarrollaron cientos de videojuegos en línea gratuitos utilizando Lingo y se publicaron en sitios web como Miniclip y Shockwave.com.
Lingo se puede utilizar para crear interfaces de usuario, manipular gráficos rasterizados, gráficos vectoriales y gráficos por computadora en 3D, y otras tareas de procesamiento de datos. Lingo admite una sintaxis especializada para el procesamiento de imágenes y la manipulación de objetos 3D. También se pueden crear mallas 3D sobre la marcha utilizando Lingo.
Historia
Lingo fue inventado por John H. Thompson en MacroMind en 1989 y lanzado por primera vez con Director 2.2. Jeff Tanner desarrolló y probó Lingo para Director 2.2 y 3.0, creó XObjects personalizados para varios productores de dispositivos multimedia, ejemplos de extensiones de lenguaje usando XFactory, incluida la interfaz de programación de aplicaciones (API) de XFactory, y escribió los tutoriales iniciales sobre cómo usar Lingo. Dave Shields probó y documentó Object-based Lingo para Director 3.13 y 4.0. Ejecutó scripts de compilación para crear lanzamientos semanales para pruebas, creó Macromedia KnowledgeBase, creó ejemplos de cómo escribir complementos Lingo XTRA en C++ y ensambló los discos Golden Master de Macromedia Director que se enviaron a el duplicador.
Lingo fue adoptado rápidamente por la floreciente comunidad multimedia durante la década de 1990 y el ya popular producto Director. Inicialmente, alrededor del 90% de los usuarios sólo utilizaban el 10% de las funciones de Lingo; principalmente ir al marco
por autores multimedia de tutoriales y presentaciones. Sin embargo, el 10% de los usuarios eran desarrolladores de juegos que se interesaron más en el 90% restante de sus capacidades, incluidas sus propias extensiones de funciones mediante la creación de sus propios XFactories/XObjects. El Proyecto Journeyman es un ejemplo destacado de esto.
Características
Lingo está integrado en Adobe Director y se puede agregar como secuencias de comandos en objetos o en la línea de tiempo. Lingo es un lenguaje de programación orientada a objetos (OOP) y admite sintaxis detallada similar a Smalltalk, sintaxis de puntos OO y herencia.
Sintaxis detallada
Cuando se creó Lingo, se diseñó una sintaxis detallada para imitar el lenguaje hablado, por lo que sería fácil para los nuevos usuarios. Los usuarios podrían escribir oraciones similares a HyperTalk como:
si el visibilidad de sprite 5 entonces Vamos. a el marco
En las declaraciones ir a, la opción "a" es opcional y, a diferencia de otros lenguajes de programación, las declaraciones go hacen referencia a marcos en Director's Score, no a líneas de código específicas.
Lingo también fue inicialmente muy sólido al proporcionar generación de objetos a través de una noción llamada factory
, lo que llevó a la extensibilidad del lenguaje a través de fábricas externas (XFactories) o XObjects. Para Director 3.13 y versiones posteriores, la extensibilidad se produjo a través de un tipo diferente de complemento llamado XTRA, basado en el modelo de objetos componentes (COM) de Microsoft.
Sintaxis de punto
Aunque todavía es posible utilizar la sintaxis detallada, la versión actual del lenguaje es totalmente compatible con la sintaxis de puntos OO, por lo que el código se parece más a los lenguajes de programación estándar como JavaScript o C++.
El equivalente en el nuevo estilo de secuencias de comandos sería:
si sprite()5).visible entonces _movie.Vamos.()_movie.marco)
Este formato utiliza elementos del modelo de objetos de Director, introducido en Director MX 2004. La sintaxis en versiones anteriores sería como:
si sprite()5).visible entonces Vamos. el marco
Secuencias de comandos
Hay 4 tipos de guiones Lingo en Director, cada uno con un propósito específico. Cada tipo de script se puede agregar a ciertos tipos de objetos compatibles.
- Cast scripts funcionan sólo con su miembro, no todos los eventos se pueden utilizar con ellos.
- Comportamiento scripts se adjuntan a un sprite o se insertan en un marco. Los comportamientos sprite se utilizan a menudo para controlar las propiedades y el movimiento del sprite. Los comportamientos del marco se pueden utilizar para crear una pausa o un retraso dentro de un determinado marco en la puntuación. Los comportamientos hacen que sea fácil programar de una manera orientada hacia el objeto, ya que puede ver directamente la relación entre la programación y el elemento al que se adjuntan. También pueden controlar o interactuar con otros sprites, haciéndolos un verdadero objeto.
- Película scripts no se adjuntan a sprites ni pueden ser instantáneas como objetos. Están disponibles a lo largo del programa (movie) y son especialmente útiles para sostener manipuladores globales e inicializar variables globales al inicio o al final de la película.
- Parent scripts se utilizan para nacimiento (crear instancias de) un objeto en una variable utilizando nuevo Comando. Estos objetos pueden controlar sprites y otros medios de comunicación de forma remota, sin estar apegados a ningún sprite, pueden utilizarse para controlar datos u otros elementos no reproducidos, y son útiles para rutinas de recursión como la determinación de caminos. Un script Parent se puede utilizar para crear o destruir un objeto en cualquier momento, liberándolos de los confines de la partitura que un Comportamiento está limitado a.
El comportamiento y los scripts principales fomentan una buena programación orientada a objetos. Los guiones de películas no están tan orientados a la programación orientada a objetos. Sin embargo, todavía se pueden usar para crear controladores de caja negra, donde otros objetos pueden ingresar datos sin procesar y recibir respuestas, sin conocer el funcionamiento interno de la caja. Utilizar las fortalezas y la facilidad de uso de la metodología de programación de Director, con las ventajas de la programación orientada a objetos, crea un entorno de programación potente y rápido.
Herencia
Lingo admite la herencia de objetos mediante un sistema ligeramente idiosincrásico: un script puede tener una propiedad ancestro
que hace referencia a otro objeto (normalmente también un script, aunque otros objetos como los miembros del elenco también pueden ser ancestros). Las propiedades y métodos del antepasado son heredados por el padre. Los scripts de comportamiento también son una especie de ancestro de los sprites a los que están adjuntos, ya que se puede acceder a las propiedades y métodos del comportamiento mediante referencia al propio sprite. En este caso, se trata de una especie de herencia múltiple, ya que un objeto puede tener varios comportamientos.
Extensibilidad
XObjetos
Lingo 3.0 también era extensible a través de Factorías Externas (XFactories) o XObjects (luego reemplazado por Lingo Xtras), que proporcionaban extensiones programáticas a Director. Por ejemplo, controlar dispositivos multimedia externos como reproductores de CD-ROM y cintas de vídeo a través de Macintosh SerialPort. La API XObject estaba abiertamente disponible para desarrolladores y productores de dispositivos multimedia, lo que contribuyó a la popularidad y versatilidad de Lingo. Macromind estuvo muy activo en posicionar la API de XObject como estándar para que dispositivos de medios externos colaboren a través de Lingo; y su interés como estándar logró una gran participación de destacadas y florecientes empresas de productos de medios a través de un grupo ad hoc llamado Multimedia Association.
Extras
A partir de la versión 4.0 de Director, Lingo fue extensible a través de una nueva clase mejorada de complemento externo llamado Xtras. Xtras se desarrollaron en C++ utilizando el modelo de objetos componentes (COM) de Microsoft. La estandarización con COM ayudó a atraer a los desarrolladores a crear un mercado para este tipo de complementos.
Lerguaje de imágenes
Imaging Lingo se introdujo con Director 8.0 y permitió a los desarrolladores escribir comandos de manipulación de imágenes de alto rendimiento utilizando una sintaxis simple. Existen algunas similitudes con las funciones de las aplicaciones de imágenes (como Photoshop), que facilitan la creación de efectos visuales dinámicos basados en código. La manipulación de imágenes también se agregó a ActionScript 3.0 con la clase BitmapData. Como esto incluía comandos más sofisticados, Director también se actualizó para permitir la conversión entre el objeto BitmapData y sus propios objetos Imagen.
3D
Director 8.5 introdujo un motor DirectX 3D que podía programarse con Lingo. Lingo se actualizó sustancialmente para admitir los nuevos objetos 3D y ahora incluye un conjunto completo de comandos 3D. También se creó un Xtra para permitir el uso del motor Havok 3D Physics, y más tarde el motor AGEIA PhysX, en Director 11.
Otros idiomas
Estos otros lenguajes quizás no sean tan conocidos como el lenguaje Macromedia. Sin embargo, sigue existiendo una anomalía legal en el Reino Unido: la marca registrada de la palabra 'Lingo' está en manos de Linn Smart Computing.
- Un lenguaje llamado Lingo fue liberado para el desarrollo de software bajo Windows. Esta versión fue diseñada como un lenguaje compilable de programación de alto nivel.
- Se desarrolló un lenguaje de programación basado en Smalltalk para el procesador Rekursiv desarrollado por Linn Smart Computing en Escocia, Reino Unido. Este idioma fue nombrado Lingo y es significativo porque sus fabricantes obtuvieron con éxito una marca registrada en el Reino Unido.
- LINGO es también un lenguaje de programación para resolver problemas de optimización lineal, no lineal e integer, desarrollado por primera vez en 1988 por LINDO Systems Inc. Este lenguaje sigue en producción.
Contenido relacionado
MacOS X 10.1
Condición de carrera
Líneas de código fuente