REXX

REXX (REstructured eXtended eXecutor) es un lenguaje de programación desarrollado en IBM por Mike Cowlishaw del que existen numerosas implementaciones disponibles con código abierto.

Fue diseñado para ser un lenguaje de scripting o macros para cualquier sistema y como tal, se considera a REXX precursor de lenguajes como Tcl y Python.

Otras versiones han sido también desarrolladas para Atari, Amiga, Unix (múltiples variantes), Solaris, DEC, Windows, Windows CE, PocketPC, MS-DOS, Palm OS, QNX, OS/2, Linux, BeOS, EPOC32, AtheOS, OpenVMS, OpenEdition, Macintosh y Mac OS X.

En 1992 aparecieron las dos versiones de código abierto más ampliamente utilizadas: REXX/imc del británico Ian Collier para UNIX y Regina del noruego Anders Christensen (posteriormente adoptada por el australiano Mark Hessling) para Windows y Linux.

BREXX del griego Vasilis Vlachoudis es bien conocido para DOS, WinCE y PocketPC.

En REXX las variables no tienen tipo e inicialmente se les asigna como valor su nombre en mayúsculas.

Los símbolos para las variables simples en REXX tienen como caracteres permitidos los típicos en casi todos los lenguajes de programación, pero nunca pueden tener un punto después del primer carácter dado que eso las convierte en una variable compuesta.

El siguiente ejemplo muestra el uso de una variable compuesta como array asociativo para manejar una pequeña agenda de teléfonos: Si el usuario introduce un nombre conocido tal y como está escrito, se imprimirá el número correspondiente.

En REXX es posible interceptar los errores y otras excepciones utilizando las instrucciones SIGNAL o CALL.

Cuando una condición es manejada por SIGNAL ON, las variables especiales SIGL y RC pueden ser analizadas para entender la situación.

La letra "X" adicional se añadió en 1982 para evitar problemas con marcas registradas cuando un estudio de IBM descubrió que había un producto comercial llamado Rex-80.

Normalmente se considera que REXX es un acrónimo y por lo general Cowlishaw y los documentos de IBM dicen que viene de "REstructured eXtended eXecutor", aunque también puede encontrarse como "Restructured EXtended eXecutor".

Debido al hecho de que el nombre original era igual a la palabra latina para "rey", existen muchas referencias a ello en el mundo que rodea al lenguaje: logos en forma de corona (Regina, Open Object REXX...), el nombre del intérprete Regina ("reina" en latín)...