REXX înseamnă „executor extins restructurat”. Este un limbaj de programare care a fost creat pentru a fi ușor de învățat și utilizat și conține aspecte ale unui limbaj natural și scutește programatorul de a fi nevoit să se încurce cu numeroase detalii în funcționarea computerului. Din acest motiv, este denumit limbaj de programare de nivel înalt sau limbaj de scripting. Limbajul are, de asemenea, o serie de caracteristici suplimentare, cum ar fi o formă liberă, sintaxă simplificată, un set de instrucțiuni foarte mic și nu este nevoie de declarații de tip de date.
Creat inițial în 1979 de Michael Cowlishaw, care lucra pentru IBM® la acea vreme, a fost mai întâi numit Rex, „un executant reformat”, iar „X” suplimentar a fost adăugat mai târziu pentru a evita confuzia cu alte produse. Cowlishaw a dezvoltat limbajul, în timpul său liber de-a lungul a câțiva ani, pentru a servi ca limbaj de scripting care ar putea fi folosit fie pe computerele mainframe IBM®, fie pe orice alt sistem. IBM® a lansat REXX ca produs în 1982, datorită popularității tot mai mari. De atunci, limbajul și-a făcut loc pe fiecare platformă de calcul, inclusiv pe computerele personale desktop și pe dispozitivele mobile.
Ca limbaj interpretat, REXX este folosit frecvent ca limbaj de scripting, unde codul este salvat într-un simplu fișier text și apoi executat de interpret. Desigur, interpretul poate fi operat și ca un program separat, care oferă un prompt de comandă pentru tastarea directă a sintaxei limbajului, făcându-l util pentru testare și alte comenzi și operații rapide ale sistemului. REXX servește bine ca limbaj de adeziv, deoarece este capabil să reunească funcțiile din alte programe într-un singur script. Unul dintre cele mai mari puncte forte este designul său ca limbaj macro. Dezvoltatorii de programe pot adăuga pur și simplu suport REXX la software-ul lor, astfel încât macrocomenzile să poată fi scrise fără a fi nevoie să-și programeze propriul limbaj de macro în software-ul lor.
O altă caracteristică a REXX este sintaxa sa în formă liberă, care face limbajul similar cu alte limbaje de scripting, cum ar fi Perl. Cu această capacitate, utilizarea limbajului devine mai simplă, deoarece cerințele de poziționare, cum ar fi indentarea și caracterele de final de linie sunt mai puțin stricte. În plus, întreaga sintaxă folosită în limbaj este doar 23 de instrucțiuni specifice. Acest mic set de instrucțiuni, cu operanzii săi, este capabil să interfațeze cu aproape orice, inclusiv interfețe grafice cu utilizatorul (GUI), baze de date și servere web. Din acest motiv, REXX este uneori folosit ca limbaj de scripting pentru interfața gateway comună (CGI) pe serverele web.
O altă trăsătură oarecum unică a limbii este lipsa de tipuri de date. REXX folosește doar șiruri de caractere ca tipuri de date. Semnificațiile șirurilor depind de utilizarea acestuia, iar matematica poate fi efectuată pe orice șir care formează un număr valid. Această capacitate inerentă de a lucra cu șiruri de caractere face ca limbajul să fie util pentru analizarea și procesarea textului.