

Un lenguaje de scripting , en informática , es un lenguaje de programación interpretado generalmente destinado a tareas de automatización del sistema operativo ( batch ) o aplicaciones ( macros ), o para ser utilizado en programación web dentro de páginas web . [1] Los programas desarrollados con estos lenguajes se denominan scripts , término del idioma inglés utilizado en el teatro para indicar el guión .(también llamado lienzo) en el que se trazan las partes que deben ser interpretadas por los actores. Un lenguaje de secuencias de comandos es un lenguaje de programación para un sistema de tiempo de ejecución que automatiza la ejecución de tareas que de otro modo serían realizadas individualmente por un operador humano [2] .
Historia
Inicialmente, los primeros lenguajes de scripting nacieron de la necesidad de automatizar ciertas operaciones como la ejecución de programas y la interacción con ellos: no había muchos constructos y muchas veces estaban relegados a tareas específicas. Los lenguajes de scripting también han encontrado aplicación en muchas áreas del diseño de software , pudiéndose utilizar como lenguajes independientes para la implementación de algoritmos para una amplia gama de tareas.
La diferencia con respecto a otros idiomas interpretados se debe principalmente a razones "históricas". Inicialmente los primeros lenguajes de scripting eran muy rudimentarios y permitían pocas y sencillas operaciones, no siendo aptos para escribir programas reales. Los lenguajes de secuencias de comandos modernos han adquirido entonces las construcciones y el poder de otros lenguajes; la distinción permanece sólo sobre la base del uso que se hace del lenguaje. [3]
Para la difusión de estos lenguajes, fueron de fundamental importancia lenguajes como Tcl y Lua , desarrollados específicamente como lenguajes de scripting , que podían integrarse en cualquier aplicación o utilizarse de forma independiente. El desarrollo de estos lenguajes trajo mayores beneficios que la creación de nuevos lenguajes para aplicaciones específicas, evitando que el desarrollador tenga que escribir un traductor de idiomas y permitiendo al usuario aplicar sus habilidades adquiridas.
La interfaz de puerta de enlace común (CGI) permitió que los lenguajes de secuencias de comandos controlaran los servidores web para comunicarse a través de la web . Algunos de los lenguajes de secuencias de comandos que utilizaron CGI en la evolución temprana de la web fueron Perl , ASP y PHP .
Hay muchos softwares que integran lenguajes de scripting. Por ejemplo, los navegadores web modernos están equipados con un lenguaje para escribir extensiones en el propio navegador y muchos otros lenguajes estándar para controlar el navegador, como ECMAScript (comúnmente conocido como JavaScript ), CSS y HTML . Hasta la fecha, según el índice TIOBE , los lenguajes de script constituyen alrededor de un tercio de los lenguajes de programación más populares del mundo [4] [5] .
Descripción
Generalmente consisten en programas simples cuyo propósito es interactuar con otros programas mucho más complejos, en los que tienen lugar las operaciones más significativas. Los scripts se distinguen de los programas con los que interactúan, generalmente implementados en un lenguaje diferente y no interpretado . Además, los scripts a menudo son creados o modificados por el usuario final. En primavera es frecuente el uso del shabang .
En los lenguajes de secuencias de comandos, el programador generalmente no se interesa por los recursos del sistema que tendrá que consumir el programa terminado, dejando todo en manos del propio sistema. Por recursos entendemos, por ejemplo, la gestión de asignación y desasignación de memoria , conversión entre tipos , inicialización y cierre de la aplicación.
De esta forma, se evitan muchos problemas propios de la programación tradicional, que está sujeta a errores insidiosos, difíciles de identificar y peligrosos, y obliga también al programador a enfrentarse a problemas no estrictamente relacionados con el objetivo del software que tiene que crear. El uso de un lenguaje de secuencias de comandos le permite concentrarse directamente en resolver el problema.
Tipología
El lenguaje de control del trabajo
![]() | Mismo tema en detalle: Lenguaje de control de trabajos . |
Los primeros sistemas informáticos, típicamente mainframe , estaban destinados a ser utilizados por múltiples usuarios (multiusuarios) que podían hacer uso de los recursos de la computadora a través de la disciplina fifo típica de los sistemas de procesamiento por lotes [ 6 ] El considerable costo del 'hardware significaba que varias instituciones , incluso con oficinas diferentes, usaban la misma computadora a través de terminales remotas ; por lo que el usuario, al no poder interactuar directamente con la máquina, enviaba su trabajo (programa, datos e instrucciones para la ejecución del programa) a través de las terminales. [7] Así nació la necesidad de un lenguaje para poder codificar las instrucciones relativas a la ejecución de su trabajo, tales como:
- Se requiere memoria.
- Dispositivos de entrada/salida a utilizar.
- Parámetros y nombre de datos.
Para ello nacieron los primeros lenguajes de scripting de la historia, los lenguajes de control Job (abreviado JCL). [8]
Secuencias de comandos bash
![]() | Mismo tema en detalle: Bash . |
El término secuencias de comandos Bash se refiere a la creación de secuencias de comandos generalmente útiles para automatizar operaciones de rutina en sistemas operativos similares a Unix , como Linux . Las operaciones que requieren la inserción de varios comandos en el shell de texto se pueden insertar en un solo archivo utilizando la sintaxis y los operadores típicos de este lenguaje. Los scripts creados de esta manera pueden simplificar enormemente el trabajo del usuario. [9]
En algunos sistemas como Linux, puede programar la ejecución de secuencias de comandos , por ejemplo, puede ejecutar algunas secuencias de comandos cada vez que se inicia el sistema.
Aquí hay un ejemplo de un script bash para eliminar archivos en /var/log:
# Limpieza
# Para ser ejecutado como root, por supuesto.
cd /var/registro
cat/dev/null>mensajes
gato/dev/null>wtmp
echo "Registros eliminados".
Secuencias de comandos GUI
Con el advenimiento de las interfaces gráficas nació una tipología de lenguajes de scripting destinados al control de las computadoras. Estos lenguajes interactúan con las ventanas gráficas, menús, botones y objetos gráficos que genera el sistema, simulando las acciones que realizaría un usuario humano. Su propósito es automatizar las acciones del usuario. Los lenguajes en los que el control se produce presionando teclas o haciendo clic con el mouse también se denominan macros . Esta categoría de lenguajes inicialmente estaba pensada para ser utilizada para controlar todas las aplicaciones que se pudieran ejecutar en una computadora basada en interfaces gráficas; pero, en la práctica, el soporte para estos lenguajes depende de las aplicaciones y del sistema operativo. Sin embargo, hay algunas excepciones a esta limitación. Algunos lenguajes de secuencias de comandos relacionados con GUI se basan en el reconocimiento de objetos gráficos por sus píxeles en la pantalla; no dependen del sistema operativo ni de la aplicación.
Idiomas específicos de la aplicación
Muchos programas incluyen un lenguaje de scripting idiomático adaptado a las necesidades del usuario. De manera similar, algunos juegos de computadora usan un lenguaje de secuencias de comandos para extender las acciones de los personajes secundarios y el entorno. Los lenguajes de este tipo están desarrollados para una sola aplicación; y, aunque pueden parecerse a un lenguaje genérico (por ejemplo , QuakeC , modelado en C ) [10] , tienen características personales que los distinguen de ellos. Emacs Lisp , un potente y bien desarrollado dialecto de Lisp , contiene muchas características especiales que lo hacen más adecuado para extender las funciones de edición de Emacs .
navegador web
Los navegadores web son aplicaciones para ver páginas web. Se han desarrollado varios lenguajes especiales para controlar sus operaciones y funcionalidad. Entre estos aparecen JavaScript , cuyo nombre puede resultar engañoso por su aparente derivación de Java (en realidad los dos lenguajes no tienen casi nada en común); VBScript producido por Microsoft , que funciona sólo con el navegador Internet Explorer ; XUL producido por el proyecto Mozilla , que funciona sólo con Firefox ; XSLT , un lenguaje particular que transforma el contenido XML en una nueva forma. [11]Las técnicas que implican la combinación de secuencias de comandos proporcionadas por XML y JavaScript han crecido hasta el punto de que adquieren un nombre propio: AJAX .
Servidor web
En el lado del servidor del enlace HTTP , los servidores de aplicaciones y otros servidores de contenido dinámico, como el sistema de administración de contenido, proporcionan contenido a través de una gran variedad de técnicas y tecnologías caracterizadas por el enfoque de secuencias de comandos. Particularmente predominantes en este campo son PHP , JSP y ASP , pero otros lenguajes como Ruby y Python , que se han dado a conocer principalmente gracias a sus famosos frameworks ( Ruby on Rails y Django respectivamente ), se han hecho con su hueco.
Idiomas para procesamiento de textos
El procesamiento de documentos de texto fue una de las primeras aplicaciones de los lenguajes de scripting. Los scripts escritos para herramientas de Unix como Awk , sed y grep automatizan tareas relacionadas con la configuración de archivos de registro y texto . De gran importancia es la expresión regular , un lenguaje creado para la descripción formal de la estructura léxica del texto, y utilizado por todas estas herramientas.
Perl se diseñó originalmente para superar las limitaciones de estas herramientas, pero ha crecido hasta convertirse en uno de los lenguajes de propósito general más populares.
Lenguajes dinámicos genéricos
Algunos lenguajes, como Perl , comenzaron como lenguajes de secuencias de comandos pero se implementaron en lenguajes adecuados para problemas mucho más grandes. Otros lenguajes similares han sido descritos como " lenguajes de scripting " por esta similitud, aunque se usan más comúnmente para programar aplicaciones.
Extensión / Idiomas incorporados
Se ha diseñado una cantidad considerable de lenguajes para reemplazar los lenguajes de programación específicos de la aplicación, para ser integrables en los programas. El programador (que trabaja en C u otro lenguaje) incluye "ganchos" a través de los cuales el lenguaje de secuencias de comandos puede controlar la aplicación. Estos lenguajes cumplen el mismo propósito que los lenguajes específicos de aplicaciones, pero con la ventaja de permitir la transferencia de características entre aplicación y aplicación. JavaScript inicialmente comenzó como un lenguaje dentro de los navegadores web; sin embargo, la estandarización del lenguaje, como ECMAScript , lo ha hecho popular como un lenguaje integrado genérico. En particular, else utiliza en muchos círculos importantes como Yahoo! Motor de widgets . Otras aplicaciones que utilizan implementaciones de ECMAScript incluyen productos de Adobe , como Adobe Flash y Adobe Acrobat .
Tcl fue creado como un lenguaje de extensión para ser utilizado en paralelo como lenguaje de propósito general, emulando el rol de lenguajes como Python , Perl y Ruby .
Otras aplicaciones complejas y específicas de tareas pueden incorporar y exponer un lenguaje de programación integrado para permitir a los usuarios un mayor control y permitirles más funcionalidad de la que puede estar disponible a través de una interfaz de usuario. Por ejemplo, Autodesk Maya 3D incorpora el lenguaje de programación MEL o Blender , que utiliza Python para la misma función. [12]
Otros tipos de aplicaciones que necesitan agregar una funcionalidad rápida o ciclos de optimización (como un motor gráfico ) también usan lenguajes integrados. Durante el desarrollo, permite modificar los prototipos de forma rápida y sencilla, sin obligar al usuario a tener un conocimiento profundo del programa (lo que puede llevar mucho tiempo). Los lenguajes de scripting, por su versatilidad, son muy utilizados, y hoy en día presume de ofrecer un amplio abanico de lenguajes como Lua y Python , pero también otros menos conocidos como Angelscript y Squirrel .
Idiomas populares
Según una encuesta global realizada por EvansData en 2008, [13] el lenguaje de programación más famoso es JavaScript , PHP en segundo lugar , mientras que Perl ocupa el tercer lugar.
- ASP ( páginas activas del servidor )
- código de acción
- AppleScript
- AutoHotKey
- Autoit
- Awk
- intento
- Cerebro
- CobolScript
- Y
- Euforia
- Halcón
- Astucia de GNU
- Vamos
- híbrido
- ICI
- JASS
- JavaScript (ECMAScript)
- beanshell
- Lenguaje de control de trabajos (JCL)
- Jerga
- Lúa
- secuencias de comandos MIRC
- miva
- PAPERAS
- ObjetoRexx
- Perl
- PHP
- Lucio
- Flexible
- Pitón
- QuakeC
- REBOL
- REXX
- Rubí
- Esquema
- ScriptBasic
- Simkin
- Tcl
- guión irreal
- VBScript
- Guión de diálogo visual
- ZZT-oop
- HTML
Nota
- ^ Flavius Florin Harabor, Scripting languages: here are some , en insidevcode.eu , 14 de enero de 2015. Consultado el 21 de febrero de 2015 .
- ^ web.archive.org , https://web.archive.org/web/20150923211452/http://www.cse.wustl.edu/~loui/praiseieee.html# . Consultado el 27 de abril de 2022 .
- ^ Definición de un lenguaje de secuencias de comandos , en cs.man.ac.uk. Consultado el 13 de marzo de 2010 .
- ^ índice | TIOBE - The Software Quality Company , en www.tiobe.com . Consultado el 27 de abril de 2022 .
- ^ ¿Qué son los lenguajes de secuencias de comandos? , en IONOS Digitalguide . Consultado el 27 de abril de 2022 .
- ^ Evolución de los sistemas operativos , en dmi.unict.it . Consultado el 12 de marzo de 2010 (archivado desde el original el 25 de febrero de 2010) .
- ^ definición de trabajo (glosario de TI) , en pc-facile.com . Consultado el 13 de marzo de 2010 .
- ^ Referencia rápida de JCL , en simotime.com . Consultado el 12 de marzo de 2010 .
- ^ Mendel Cooper, Advanced Bash Scripting Guide (introducción) , en pluto.it . Consultado el 12 de marzo de 2010 .
- ^ QuakeC , en ouns.nexuizninjaz.com . _ _ Consultado el 13 de marzo de 2010 .
- ^ Uso de lenguajes de script en el entorno Web , en users.libero.it . Consultado el 12 de marzo de 2010 (archivado desde el original el 14 de marzo de 2010) .
- ^ Python y Blender , en jmsoler.free.fr . Consultado el 12 de marzo de 2010 .
- ^ El estado del universo de secuencias de comandos , en cio.com . Consultado el 13 de marzo de 2010 .
Artículos relacionados
Otros proyectos
Wikimedia Commons contiene imágenes u otros archivos de lenguaje de secuencias de comandos
enlaces externos
- lenguajes de scripting en la web , en ennebi.solira.org .
- Guía avanzada de secuencias de comandos de Bash , en pluto.it . Consultado el 12 de marzo de 2010 (archivado desde el original el 29 de diciembre de 2010) .
- guías sobre JavaScript , en javascript.html.it .
- Programación en Emacs Lisp , en gnu.org .
Ada ALGOL APL Asamblea Awk BASIC C C ++ C # COBOL Delphi Eiffel Fortran F # Haskell IDL Java JavaScript J # Lisp LOGO Lua ML Objetivo - C _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ OCaml Pascual _ _ Perl · PHP · PL/I · PLASM · Prolog · Python · Ruby · Rust · SAS · Scheme · sh · Simulate · Smalltalk · SQL · Swift · Visual Basic |
control de autoridad | LCCN ( EN ) sh2006007256J9U ( EN , HE ) 987007534995705171 ( tema ) |
---|
![]() |