Articles

Lenguaje de scripting

Los lenguajes de scripting se pueden clasificar en varios tipos diferentes, con un grado considerable de solapamiento entre los tipos.

Lenguajes de colaEditar

Esta sección no cita ninguna fuente. Por favor, ayude a mejorar esta sección añadiendo citas de fuentes fiables. El material sin fuente puede ser cuestionado y eliminado. (Marzo de 2007) (Aprende cómo y cuándo eliminar este mensaje de la plantilla)

El scripting se contrapone a menudo con la programación de sistemas, como en la dicotomía de Ousterhout o «programación en lo grande y programación en lo pequeño». Desde este punto de vista, el scripting es un código pegajoso, que conecta componentes de software, y un lenguaje especializado para este propósito es un lenguaje pegajoso. Los pipelines y el shell scripting son ejemplos arquetípicos de lenguajes pegamento, y Perl se desarrolló inicialmente para desempeñar este mismo papel. El desarrollo web puede considerarse un uso de los lenguajes pegamento, al interconectar una base de datos y un servidor web. Pero si una cantidad sustancial de lógica se escribe en script, es mejor caracterizarlo como simplemente otro componente de software, no como «pegamento».

Los lenguajes glue son especialmente útiles para escribir y mantener:

  • comandos personalizados para un shell de comandos;
  • programas más pequeños que los que se implementan mejor en un lenguaje compilado;
  • programas «envolventes» para ejecutables, como un archivo por lotes que mueve o manipula archivos y hace otras cosas con el sistema operativo antes o después de ejecutar una aplicación como un procesador de textos, hoja de cálculo, base de datos, ensamblador, compilador, etc.
  • Scripts que pueden cambiar;
  • Desarrollo rápido de aplicaciones de una solución eventualmente implementada en otro lenguaje, normalmente compilado.
  • Ejemplos de lenguajes de cola:

    Los macrolenguajes expuestos a componentes del sistema operativo o de la aplicación pueden servir como lenguajes de cola. Entre ellos se encuentran Visual Basic para Aplicaciones, WordBasic, LotusScript, CorelScript, Hummingbird Basic, QuickScript, Rexx, SaxBasic y WinWrap Basic. Otras herramientas como AWK también pueden considerarse lenguajes de cola, al igual que cualquier lenguaje implementado por un motor de Windows Script Host (VBScript, JScript y VBA por defecto en Windows y motores de terceros que incluyen implementaciones de Rexx, Perl, Tcl, Python, XSLT, Ruby, Modern Pascal, Delphi y C). La mayoría de las aplicaciones pueden acceder y utilizar componentes del sistema operativo a través de los modelos de objetos o de sus propias funciones.

    Otros dispositivos como las calculadoras programables también pueden tener lenguajes de pegado; los sistemas operativos de las PDA como Windows CE pueden tener disponibles herramientas de macros nativas o de terceros que pegan las aplicaciones, además de implementaciones de lenguajes de pegado comunes -incluyendo Windows NT, DOS y algunos shells de Unix, Rexx, Modern Pascal, PHP y Perl. Dependiendo de la versión del sistema operativo, WSH y los motores de scripts por defecto (VBScript y JScript) están disponibles.

    Las calculadoras programables se pueden programar en lenguajes de cola de tres maneras. Por ejemplo, la Texas Instruments TI-92, por defecto puede ser programada con un lenguaje de script de comandos. La inclusión del lenguaje de scripting y glue Lua en la serie de calculadoras TI-NSpire podría considerarse como un sucesor de éste. Los principales lenguajes de programación de alto nivel integrados en la mayoría de las calculadoras gráficas (a menudo variantes de Basic, a veces derivados de Lisp y, más raramente, derivados de C) pueden en muchos casos encolar funciones de la calculadora, como gráficos, listas, matrices, etc. Existen implementaciones de terceros de versiones más completas de Basic que pueden acercarse más a las variantes enumeradas como lenguajes de encolado en este artículo, y también se mencionan los intentos de implementar Perl, Rexx o varios shells de sistemas operativos en las calculadoras gráficas de TI y HP. Los compiladores cruzados de C basados en PC para algunas de las máquinas TI y HP utilizadas con herramientas que convierten entre C y Perl, Rexx, AWK, y shell scripts a Perl, Modern Pascal, VBScript a y desde Perl hacen posible escribir un programa en un lenguaje de cola para su eventual implementación (como un programa compilado) en la calculadora.

    Lenguajes de ediciónEdit

    Un número de editores de texto soportan macros escritas ya sea utilizando un lenguaje de macros incorporado en el editor, por ejemplo, El Editor SemWare (TSE), vi mejorado (VIM), o utilizando una implementación externa, por ejemplo, XEDIT, o ambos, por ejemplo, KEDIT. A veces los editores de texto y las macros de edición se utilizan bajo las cubiertas para proporcionar otras aplicaciones, por ejemplo, FILELIST y RDRLIST en CMS .

    Lenguajes de control de trabajo y shellsEdit

    Artículo principal: Shell script

    Una clase importante de lenguajes de scripting ha crecido a partir de la automatización del control de trabajos, que se refiere a iniciar y controlar el comportamiento de los programas del sistema. (En este sentido, se podría pensar que los shells son descendientes del JCL de IBM, o Lenguaje de Control de Trabajos, que se utilizaba exactamente para este propósito). Muchos de los intérpretes de estos lenguajes hacen las veces de intérpretes de línea de comandos, como el shell de Unix o el COMMAND.COM de MS-DOS. Otros, como AppleScript ofrecen el uso de comandos similares a los ingleses para construir scripts.

    ScriptingEdit de GUI

    Con la llegada de las interfaces gráficas de usuario, surgió un tipo especializado de lenguaje de scripting para controlar un ordenador. Estos lenguajes interactúan con las mismas ventanas gráficas, menús, botones, etc., que lo haría un usuario humano. Lo hacen simulando las acciones de un usuario. Estos lenguajes suelen utilizarse para automatizar las acciones del usuario. Estos lenguajes también se denominan «macros» cuando el control se realiza a través de la simulación de la pulsación de teclas o de clics del ratón, así como del toque o la pulsación en una pantalla táctil.

    Estos lenguajes podrían utilizarse, en principio, para controlar cualquier aplicación de la interfaz gráfica de usuario; pero, en la práctica, su uso está limitado porque su utilización necesita el apoyo de la aplicación y del sistema operativo. Hay algunas excepciones a esta limitación. Algunos lenguajes de scripting de GUI se basan en el reconocimiento de objetos gráficos a partir de los píxeles de la pantalla. Estos lenguajes de scripting de la GUI no dependen del soporte del sistema operativo o de la aplicación.

    Cuando la GUI proporciona las interfaces apropiadas, como en el IBM Workplace Shell, se puede utilizar un lenguaje de scripting genérico, por ejemplo OREXX, para escribir scripts de la GUI.

    Lenguajes específicos de la aplicaciónEditar

    Los lenguajes específicos de la aplicación se pueden dividir en muchas categorías diferentes, es decir.e. lenguajes de aplicación basados en standalone (ejecutables) o lenguajes específicos de aplicación interna (postscript, xml, gscript como algunos de los scripts ampliamente distribuidos, respectivamente implementados por Adobe, MS y Google) entre otros incluyen un lenguaje de scripting idiomático adaptado a las necesidades del usuario de la aplicación. Del mismo modo, muchos sistemas de juegos de ordenador utilizan un lenguaje de scripting personalizado para expresar las acciones programadas de los personajes no jugadores y del entorno del juego. Los lenguajes de este tipo están diseñados para una sola aplicación y, aunque pueden parecerse superficialmente a un lenguaje específico de propósito general (por ejemplo, QuakeC, modelado a partir de C), tienen características personalizadas que los distinguen. Emacs Lisp, aunque es un dialecto de Lisp completamente formado y capaz, contiene muchas características especiales que lo hacen más útil para extender las funciones de edición de Emacs. Un lenguaje de scripting específico de la aplicación puede ser visto como un lenguaje de programación específico del dominio especializado para una sola aplicación.

    Lenguajes de extensión/incorporablesEdit

    Se han diseñado una serie de lenguajes con el propósito de reemplazar los lenguajes de scripting específicos de la aplicación al ser incrustables en los programas de aplicación. El programador de la aplicación (que trabaja en C u otro lenguaje de sistemas) incluye «ganchos» donde el lenguaje de scripting puede controlar la aplicación. Estos lenguajes pueden ser técnicamente equivalentes a un lenguaje de extensión específico de la aplicación, pero cuando una aplicación incorpora un lenguaje «común», el usuario obtiene la ventaja de poder transferir sus conocimientos de una aplicación a otra. Una alternativa más genérica es simplemente proporcionar una biblioteca (a menudo una biblioteca C) que un lenguaje de propósito general puede utilizar para controlar la aplicación, sin modificar el lenguaje para el dominio específico.

    JavaScript comenzó como, y principalmente sigue siendo, un lenguaje para el scripting dentro de los navegadores web; sin embargo, la estandarización del lenguaje como ECMAScript lo ha hecho popular como un lenguaje incrustado de propósito general. ¡En particular, la implementación de Mozilla, SpiderMonkey, está integrada en varios entornos, como el motor de widgets de Yahoo! Otras aplicaciones que incrustan implementaciones de ECMAScript incluyen los productos de Adobe Adobe Flash (ActionScript) y Adobe Acrobat (para el scripting de archivos PDF).

    Tcl fue creado como un lenguaje de extensión pero ha llegado a ser utilizado con más frecuencia como un lenguaje de propósito general en roles similares a Python, Perl y Ruby. Por otro lado, Rexx fue creado originalmente como un lenguaje de control de trabajos, pero es ampliamente utilizado como un lenguaje de extensión, así como un lenguaje de propósito general. Perl es un lenguaje de propósito general, pero tenía el dialecto Oraperl (1990), que consistía en un binario de Perl 4 con Oracle Call Interface compilado. Sin embargo, esto ha sido sustituido desde entonces por una biblioteca (módulo de Perl), DBD::Oracle.

    Otras aplicaciones complejas y orientadas a tareas pueden incorporar y exponer un lenguaje de programación incrustado para permitir a sus usuarios más control y darles más funcionalidad de la que puede estar disponible a través de una interfaz de usuario, por muy sofisticada que sea. Por ejemplo, las herramientas de autoría 3D de Autodesk Maya incorporan el lenguaje embebido Maya, o Blender, que utiliza Python para cumplir esta función.

    Algunos otros tipos de aplicaciones que necesitan una adición de características más rápida o ciclos de ajuste y ejecución (por ejemplo, los motores de juegos) también utilizan un lenguaje embebido. Durante el desarrollo, esto les permite crear prototipos de características más rápidamente y retocarlos más libremente, sin necesidad de que el usuario tenga un conocimiento íntimo del funcionamiento interno de la aplicación o de reconstruirla después de cada retoque (lo que puede llevar una cantidad significativa de tiempo). Los lenguajes de scripting utilizados para este fin van desde los más comunes y famosos Lua y Python hasta otros menos conocidos como AngelScript y Squirrel.

    Ch es otra opción de scripting compatible con C para que la industria lo incruste en programas de aplicación C/C++.

Dejar una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *