REXX o Rexx (REstructured eXtended eXecutor, pronunciado "rex") es un lenguaje de programación interpretado desarrollado por IBM . Hay implementaciones comerciales y gratuitas de este lenguaje.
REXX alcanzó su punto máximo de distribución a mediados de la década de 1990, junto con la popularidad del sistema operativo OS/2 . Esto se debe al hecho de que el intérprete de REXX podría llamarse tanto desde el shell, que como resultado podría ejecutar scripts que consisten en declaraciones de línea de comandos (similar a bash en GNU ), como desde cualquier aplicación.
El lenguaje se ha generalizado en el sistema operativo AmigaOS (incluida la última edición 3.2 en 2021) en la variación ARexx. El lenguaje le permite integrar nuevas funciones en las aplicaciones e implementar la automatización de procesos y la comunicación entre diferentes programas. Teniendo en cuenta las características del sistema operativo AmigaOS, el lenguaje recibió muchas extensiones de terceros a través de bibliotecas dinámicas, incluidos los constructores de GUI, lo que a su vez condujo a la aparición de muchos programas independientes populares y paquetes de extensión para varios editores. Los programas se pueden llamar desde la línea de comandos, desde programas e independientemente de los íconos en el escritorio.
Cuando se llama al intérprete REXX desde cmd.exe (o 4os2 .exe), ejecuta el archivo por lotes. Si se llama desde el editor de correo de FleetStreet , ejecuta el archivo por lotes de FleetStreet. Por sí mismo, REXX no está vinculado a una parte específica del sistema y puede ser utilizado por cualquier programa como su "propio" idioma, mientras que cada uno de los programas que utilizan REXX puede agregarle sus propias funciones y operadores, que estarán disponibles solo cuando REXX se está ejecutando en el contexto de este programa. Por ejemplo, la hoja de cálculo mesa/2 agrega un comando a REXX que le permite leer y escribir el contenido de las celdas de la hoja de cálculo, etc.
Desde entonces, el lenguaje ha evolucionado mucho más allá de OS/2, pero sus características tradicionales siguen siendo un acceso conveniente a los comandos del sistema operativo, potentes operaciones con cadenas, manejo de errores simplificado y un depurador incorporado .
Inicialmente, REXX no estaba orientado a objetos, aunque actualmente existen tales versiones del lenguaje (por ejemplo, Open Object REXX ). Sintácticamente, el lenguaje se parece un poco a un PL/1 simplificado . Las variables en REXX no se escriben y no requieren una declaración.
De las características del lenguaje, cabe destacar el poderoso y conveniente operador PARSE para analizar cadenas (similar a "=~ m/" en Perl , pero más simple). Su sintaxis es:
analizar [superior] ''plantilla fuente''le permite escribir construcciones fáciles de leer como
MiVar = "Vasya Ivanov" analizar var MyVar Nombre Apellido decir "Nombre:" FirstName decir "Apellido:" Apellidoo, por ejemplo, si el nombre se escribe con una coma, puede especificarlo en la plantilla
MiVar = "Ivánov, Vasya" analizar var MyVar LastName "," FirstName decir "Nombre:" FirstName decir "Apellido:" Apellidoy también puede usar la indexación directa de columnas:
MiVar = "(202) 123-1234" analizar var MyVar 2 AreaCode 5 7 SubNumber diga "Código de área:" Código de área diga "Teléfono:" SubNúmeromostrará las siguientes líneas en la pantalla:
Código de ciudad: 202 Teléfono: 123-1234Un ejemplo de un programa REXX es una calculadora que realiza seis operaciones (+, -, *, /, / /,%), entiende las operaciones entre paréntesis y un número arbitrario de variables:
/* calc.cmd calculadora popular (c) 1998 */ DIGA 'Calculadora popular rusa v0.0' XX="X="; X0 = "X=X" DIGA 'Ingrese expresión o Q para completar' HACER PARA SIEMPRE TIRAR v SI v = 'Q' ENTONCES SALGA S = IZQUIERDA (v, 1) SI (TIPO DE DATOS (S, 'A')) DESPUÉS HACER SI( POS( '=', v ) = 0 ) DESPUÉS HACER INTERPRETAR XXv DI 'X=' X FINAL MÁS INTERPRETAR FINAL MÁS HACER INTERPRETAR X0 v DI 'X=' X FINAL FINAL SALIDAEjemplo de ejecución de programa ( > denota entrada de usuario):
Calculadora popular rusa v0.0 Ingrese expresión o Q para completar >300+(12,5*2+5) X = 330,0 >Y=X*2 >Y+2 X=662,0 >+33 X=695,0 >+123 X=818,0 >/10 X=81,8 >//2 x=1,8 >+1024 X= 1025.8 >%4 X=256
Lenguajes de programación | |
---|---|
|