REXX significa «ejecutor extendido reestructurado». Es un lenguaje de programación que fue creado para ser fácil de aprender y usar, y contiene aspectos de un lenguaje natural y alivia al programador de tener que preocuparse por numerosos detalles en el funcionamiento de la computadora. Por esta razón, se lo conoce como un lenguaje de programación de alto nivel o lenguaje de scripting. El lenguaje también cuenta con una serie de características adicionales, como una sintaxis simplificada de forma libre, un conjunto de instrucciones muy pequeño y sin necesidad de declaraciones de tipos de datos.
Originalmente creado en 1979 por Michael Cowlishaw, que trabajaba para IBM® en ese momento, primero se lo llamó Rex, «un albacea reformado», y la «X» adicional se agregó más tarde para evitar confusiones con otros productos. Cowlishaw desarrolló el lenguaje, durante su tiempo libre durante el transcurso de un par de años, para que sirviera como lenguaje de scripting que podría usarse en computadoras centrales IBM® o en cualquier otro sistema. IBM® lanzó REXX como producto en 1982, debido a su creciente popularidad. Desde entonces, el lenguaje se ha abierto camino en todas las plataformas informáticas, incluidas las computadoras personales de escritorio y los dispositivos móviles.
Como lenguaje interpretado, REXX se usa con frecuencia como lenguaje de scripting, donde el código se guarda en un archivo de texto simple y luego el intérprete lo ejecuta. Por supuesto, el intérprete también se puede operar como un programa separado, que proporciona un símbolo del sistema para escribir directamente la sintaxis del lenguaje, lo que lo hace útil para pruebas y otros comandos y operaciones rápidos del sistema. REXX sirve bien como un lenguaje de cola, entonces, ya que es capaz de juntar funciones de otros programas en un solo script. Una de sus mayores fortalezas es su diseño como macrolenguaje. Los desarrolladores de programas pueden simplemente agregar soporte REXX a su software para que las macros se puedan escribir sin tener que programar su propio lenguaje de macros en su software.
Otra de las características de REXX es su sintaxis de forma libre, que hace que el lenguaje sea similar a otros lenguajes de scripting, como Perl. Con esta capacidad, el uso del idioma se vuelve más simple ya que los requisitos de posicionamiento, como la sangría y los caracteres de final de línea, son menos estrictos. Además, toda la sintaxis utilizada en el lenguaje son solo 23 instrucciones específicas. Este pequeño conjunto de instrucciones, con sus operandos, es capaz de interactuar con prácticamente cualquier cosa, incluidas las interfaces gráficas de usuario (GUI), las bases de datos y los servidores web. Por esta razón, REXX se utiliza a veces como un lenguaje de scripting de interfaz de puerta de enlace común (CGI) en servidores web.
Otro rasgo algo único del lenguaje es su falta de tipos de datos. REXX usa solo cadenas de caracteres como tipos de datos. Los significados de las cadenas dependen de su uso, y las matemáticas se pueden realizar en cualquier cadena que forme un número válido. Esta capacidad inherente para trabajar con cadenas hace que el lenguaje sea útil para analizar y procesar texto.