Script

Un lenguaje de scripting o script es un lenguaje de programación que soporta scripts. Los scripts suelen ser programas informáticos breves que realizan pasos que podría hacer una persona a la vez. Esto automatiza un trabajo para hacerlo más fácil y fiable. Un lenguaje de scripts suele ser un lenguaje más sencillo y fácil de aprender que otros lenguajes, pero aún así puede hacer muchas cosas.

Los scripts pueden ejecutarse dentro de otro programa, como en un navegador web o en Microsoft Excel. También pueden ser un shell que se ejecuta desde una interfaz de línea de comandos y hace llamadas al sistema operativo (SO). El shell se considera interactivo: el usuario puede elegir qué escribir y el shell responde al comando. Pueden utilizarse para controlar trabajos en mainframes y servidores.

Algunos dicen que un lenguaje de scripting debe estar ligado a un uso específico. Otros utilizan una definición más amplia e incluyen los lenguajes de programación de propósito general que son interpretados, no compilados. El propósito general significa que se puede utilizar de muchas maneras para diferentes cosas. Algunos lenguajes de propósito general (como Java) tienen variantes que se pueden programar (Javascript). No hay ninguna regla específica sobre lo que es o no es un lenguaje de scripting.

Ejemplos

Algunos ejemplos comunes de lenguajes de scripting:

  • Bash y C shell, como lenguajes de control para los sistemas operativos Unix o similares a Unix
  • Los scripts que se ejecutan dentro de otras aplicaciones se denominan lenguaje de extensión. Los navegadores web permiten varios tipos de scripts, como ECMAScript (JavaScript) o XUL. Por ejemplo, la página de inicio de Google utiliza JavaScript. Visual Basic para Aplicaciones se utiliza dentro de Microsoft Office. Lua es un lenguaje hecho a propósito como lenguaje de extensión, y puede ser usado dentro de muchas aplicaciones.
  • Entre los juegos que tienen extensiones de scripts se encuentran el mundo virtual Second Life y los simuladores ferroviarios Trainz. En otros juegos, como Wesnoth, la variedad de juegos reales son scripts escritos por otros usuarios.
  • Lenguajes de procesamiento de textos sed y AWK
  • Propósito general: Perl, Tcl y Python son lenguajes de programación de alto nivel (más cercanos al lenguaje humano que al código máquina) que pueden utilizarse para muchas cosas diferentes. Algunos de estos lenguajes se crearon primero para un uso concreto y luego se convirtieron en lenguajes de propósito general.

Características

La mayoría de los lenguajes de scripting están hechos para ser fáciles de aprender. A menudo pueden ser archivos cortos con código fuente, o introducirse un comando a la vez en una interfaz de línea de comandos, que tiene un bucle de lectura-evaluación-impresión (REPL, language shell). Por lo general, se trata de un conjunto simple de comandos. Puede que no haya funciones o un main, simplemente se ejecuta de principio a fin. Si algo no funciona, un programador puede hacer cambios rápidos y ejecutarlo de nuevo. Esto hace que un lenguaje de scripting sea bueno para hacer un prototipo rápido para ver si una idea funciona.

Por ejemplo, la mayoría de la gente no llama a Java un lenguaje de scripting, debido a su larga sintaxis y a las reglas sobre qué clases existen en qué archivos, y porque Java no puede ejecutarse interactivamente en un REPL. Necesita archivos con código fuente, y éstos sólo pueden contener definiciones que deben ser utilizadas por una aplicación anfitriona o un lanzador de aplicaciones. (Java no es lo mismo que JavaScript).

Pero Python permite opciones - las funciones pueden ser puestas en un archivo, puede ser ejecutado sin funciones y usar el estilo de programación imperativo, o incluso usarlo interactivamente (escribir y ejecutar una línea a la vez).

print ("Hola Mundo")

Esta línea de código Python imprime "Hola Mundo"; no se necesita la función main() ni nada más.

Un lenguaje de scripting suele interpretarse a partir del código fuente o bytecode. Sin embargo, algo tiene que ejecutar el script (interpretarlo) para que el ordenador lo entienda. Esto es una aplicación, o algo en el sistema operativo. Eso suele estar escrito en un lenguaje compilado y distribuido en forma de código máquina (como un ejecutable que no tiene sentido para los humanos).

Los lenguajes de scripting pueden estar diseñados para ser utilizados por las personas que utilizan un programa - desarrollo para el usuario final. Otras veces pueden ser construidos por los programadores para su propio uso. Los lenguajes de script suelen utilizar la abstracción, una forma de ocultar información. Esto significa que los usuarios no necesitan conocer los detalles de los tipos de variables, el almacenamiento de datos y la gestión de la memoria.

Los scripts suelen ser creados o modificados por la persona que los ejecuta, pero algunos se comparten o se venden a otros. Por ejemplo, cuando grandes partes de los juegos se escriben en un lenguaje de scripts. A veces se puede compilar un script antes de que otros lo utilicen. Una vez compilado, se ejecutará más rápido y no necesitará otra aplicación para funcionar. Y esto evita que los usuarios finales cambien el código.

Historia

Los primeros ordenadores centrales (en la década de 1950) no eran interactivos, sino que utilizaban scripts almacenados en archivos por lotes. El lenguaje de control de trabajos (JCL) de IBM es el ejemplo común de un lenguaje de scripting utilizado para controlar el procesamiento por lotes.

Los primeros shells interactivos se hicieron en la década de 1960 para ayudar a la operación remota de los primeros sistemas de tiempo compartido. En ellos se utilizaban scripts de shell, que pueden ejecutar programas informáticos dentro de un programa informático, el shell. A Calvin Mooers, en su lenguaje TRAC, se le suele atribuir la invención de la sustitución de comandos. Esto permite que los comandos cambien el script (código auto-modificable). Multics las llama funciones activas. Louis Pouzin escribió un primer procesador para scripts de comandos llamado RUNCOM para CTSS alrededor de 1964. Stuart Madnick en el MIT escribió un lenguaje de scripts para el CP/CMS de IBM en 1966. Originalmente llamó a este procesador COMMAND, y más tarde lo llamó EXEC. Multics incluía una rama de CTSS RUNCOM, también llamada RUNCOM. EXEC fue eventualmente reemplazado por EXEC 2 y REXX.

Lenguajes como Tcl y Lua se hicieron desde el principio para ser lenguajes de scripting de propósito general que pudieran ponerse en cualquier aplicación. Otros lenguajes como Visual Basic para Aplicaciones (VBA) podían hacer mucho de lo mismo, pero debían funcionar sólo con ciertas aplicaciones. Utilizar un lenguaje de scripting de propósito general en lugar de crear un nuevo lenguaje para cada aplicación suele facilitar las cosas tanto a la persona que escribe la aplicación como al usuario que escribe los scripts.

Tipos de lenguajes de scripting

Lenguas de pegamento

Los scripts se utilizan a veces para conectar diferentes aplicaciones. A esto se le llama código cola, y un lenguaje hecho sólo para este propósito es un lenguaje cola. Los pipelines y las secuencias de comandos del shell son ejemplos comunes de lenguajes cola. Pero si se escribe mucha lógica en un archivo de script, es mejor pensar que es simplemente otra aplicación de software, no "pegamento".

Las lenguas de cola 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" que hacen algunas cosas automatizadas antes o después de ejecutar una aplicación como una hoja de cálculo, una base de datos, un compilador, etc;
  • guiones que pueden cambiar a menudo;

Ejemplos de lenguaje de pegado:

  • AppleScript
  • awk
  • JCL
  • Lua
  • m4
  • Perl
  • Scripts de Unix Shell (ksh, csh, bash, sh y otros)
  • VBScript
  • Lenguaje de flujo de trabajo
  • Windows PowerShell
  • XSLT

Los dispositivos como las calculadoras programables también pueden tener sus propios lenguajes de cola. Por ejemplo, la TI-92 de Texas Instruments, por defecto, se puede programar con un lenguaje de comandos. La calculadora TI-NSpire entiende el lenguaje Lua. Otras entienden algún tipo de lenguaje Basic, o quizás Lisp o alguna otra cosa.

Lenguajes de control de trabajos y shells

Este grupo procede de la automatización del control de trabajos, que se refiere al inicio y control del comportamiento de los programas del sistema, a partir del JCL de IBM. Muchos de los intérpretes de estos lenguajes funcionan también como 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.

Guiones de la interfaz gráfica de usuario (GUI)

Cuando se construyen interfaces gráficas de usuario, se necesita una forma de probarlas. Se han creado lenguajes de scripting especializados para controlar ventanas gráficas, menús, botones, etc. como lo haría un usuario humano. Muchas veces se pueden utilizar para copiar exactamente lo que hace una persona (mover un ratón, hacer clic o escribir en un teclado). Esta acción o conjunto de acciones que se copian y recuerdan se llama macro.

Lenguajes específicos de la aplicación

Muchas aplicaciones grandes incluyen un lenguaje de scripting construido sólo para esa aplicación. La aplicación puede ser un juego o un programa de negocios. Este tipo de lenguaje está hecho para una sola aplicación. Hacen parecer un lenguaje de propósito general (por ejemplo, QuakeC, modelado a partir de C), tienen características personalizadas que los distinguen.

Lenguas ampliables/integrables

Es como un lenguaje de scripting específico para una aplicación, en el sentido de que controla una aplicación, pero el lenguaje puede utilizarse en muchas aplicaciones.

JavaScript comenzó como un lenguaje para la creación de scripts dentro de los navegadores web, pero ahora es un lenguaje incrustado de uso general. También se utiliza, por ejemplo, en los productos de Adobe.

Algunos lenguajes cambian de un tipo a otro a lo largo del tiempo, normalmente a medida que añaden capacidad para hacer más cosas.

Preguntas y respuestas

P: ¿Qué es un lenguaje de scripting?


R: Un lenguaje de scripting o script es un lenguaje de programación que soporta scripts.

P: ¿Qué son los scripts?


R: Los scripts suelen ser programas informáticos cortos que realizan pasos que podría hacer una persona de uno en uno.

P: ¿Por qué son útiles los scripts?


R: Así se automatiza un trabajo para hacerlo más fácil y fiable.

P: ¿Es difícil aprender un lenguaje de scripts?


R: Un lenguaje de scripts suele ser un lenguaje más sencillo y fácil de aprender que otros lenguajes, pero aún así puede hacer muchas cosas.

P: ¿Dónde pueden ejecutarse los scripts?


R: Los scripts pueden ejecutarse dentro de otro programa, como en un navegador web o en Microsoft Excel.

P: ¿Qué es un shell en los lenguajes de scripting y cómo se utiliza?


R: También puede ser un intérprete de comandos que se ejecuta desde una interfaz de línea de comandos y realiza llamadas al sistema operativo (SO). El shell se considera interactivo: el usuario puede elegir qué escribir y el shell responde a la orden. Pueden utilizarse para controlar trabajos en mainframes y servidores.

P: ¿Puede un lenguaje de propósito general ser un lenguaje de scripting?


R: Algunos dicen que un lenguaje de scripting debe estar vinculado a un uso específico. Otros utilizan una definición más amplia e incluyen los lenguajes de programación de uso general que se interpretan, no se compilan. De propósito general significa que puede utilizarse de muchas maneras para cosas diferentes. Algunos lenguajes de propósito general (como Java) tienen variantes que se pueden programar. No existe una regla específica sobre lo que es, o no es, un lenguaje de scripting.

AlegsaOnline.com - 2020 / 2023 - License CC3