REXX sta per “executor esteso ristrutturato”. È un linguaggio di programmazione che è stato creato per essere facile da imparare e da usare, contiene aspetti di un linguaggio naturale e solleva il programmatore dal doversi preoccupare di numerosi dettagli nel funzionamento del computer. Per questo motivo viene definito linguaggio di programmazione di alto livello o linguaggio di scripting. Il linguaggio vanta anche una serie di funzionalità aggiuntive, come una sintassi semplificata e in formato libero, un set di istruzioni molto piccolo e nessuna necessità di dichiarazioni del tipo di dati.
Creato originariamente nel 1979 da Michael Cowlishaw, che all’epoca lavorava per IBM®, è stato inizialmente soprannominato Rex, “un esecutore riformato” e l’ulteriore “X” è stata aggiunta in seguito per evitare confusione con altri prodotti. Cowlishaw sviluppò il linguaggio, durante il suo tempo libero nel corso di un paio d’anni, per fungere da linguaggio di scripting che potesse essere utilizzato su computer mainframe IBM® o su qualsiasi altro sistema. IBM® ha rilasciato REXX come prodotto nel 1982, a causa della crescente popolarità. Da allora, il linguaggio si è fatto strada su ogni piattaforma informatica, inclusi personal computer desktop e dispositivi mobili.
Come linguaggio interpretato, REXX viene spesso utilizzato come linguaggio di scripting, in cui il codice viene salvato in un semplice file di testo e quindi eseguito dall’interprete. Naturalmente, l’interprete può anche essere utilizzato come un programma separato, che fornisce un prompt dei comandi per digitare direttamente la sintassi del linguaggio, rendendolo utile per i test e altri comandi e operazioni di sistema rapidi. REXX serve bene come linguaggio collante, quindi, poiché è in grado di riunire funzioni di altri programmi in un singolo script. Uno dei suoi maggiori punti di forza è il suo design come linguaggio macro. Gli sviluppatori di programmi possono semplicemente aggiungere il supporto REXX al loro software in modo che le macro possano essere scritte senza dover programmare il proprio linguaggio macro nel loro software.
Un’altra delle caratteristiche di REXX è la sua sintassi in formato libero, che rende il linguaggio simile ad altri linguaggi di scripting, come Perl. Con questa capacità, l’uso del linguaggio diventa più semplice poiché i requisiti di posizionamento, come il rientro e i caratteri di fine riga sono meno rigorosi. Inoltre, l’intera sintassi utilizzata nel linguaggio è solo 23 istruzioni specifiche. Questo piccolo set di istruzioni, con i suoi operandi, è in grado di interfacciarsi praticamente con qualsiasi cosa, incluse interfacce utente grafiche (GUI), database e server web. Per questo motivo, REXX viene talvolta utilizzato come linguaggio di scripting CGI (Common Gateway Interface) sui server web.
Un altro tratto un po’ unico del linguaggio è la mancanza di tipi di dati. REXX utilizza solo stringhe di caratteri come tipi di dati. I significati delle stringhe dipendono dal suo utilizzo e la matematica può essere eseguita su qualsiasi stringa che forma un numero valido. Questa capacità intrinseca di lavorare con le stringhe rende il linguaggio utile per l’analisi e l’elaborazione del testo.