REXX oznacza „zrestrukturyzowany rozszerzony wykonawca”. Jest to język programowania, który został stworzony, aby był łatwy do nauczenia i używania, zawiera aspekty języka naturalnego i uwalnia programistę od konieczności zawracania sobie głowy licznymi szczegółami dotyczącymi obsługi komputera. Z tego powodu jest określany jako język programowania wysokiego poziomu lub język skryptowy. Język oferuje również szereg dodatkowych funkcji, takich jak swobodna, uproszczona składnia, bardzo mały zestaw instrukcji i brak konieczności deklaracji typu danych.
Pierwotnie stworzony w 1979 roku przez Michaela Cowlishawa, który w tamtym czasie pracował dla IBM®, został najpierw nazwany Rex, „zreformowany wykonawca”, a dodatkowe „X” dodano później, aby uniknąć pomyłek z innymi produktami. Cowlishaw przez kilka lat w wolnym czasie opracował język, aby służył jako język skryptowy, którego można było używać na komputerach mainframe IBM® lub dowolnym innym systemie. IBM® wypuścił REXXa jako produkt w 1982 roku ze względu na rosnącą popularność. Od tego czasu język ten trafił na każdą platformę komputerową, w tym na komputery stacjonarne i urządzenia mobilne.
Jako język interpretowany, REXX jest często używany jako język skryptowy, w którym kod jest zapisywany w prostym pliku tekstowym, a następnie wykonywany przez interpreter. Oczywiście interpreter może również działać jako osobny program, który zapewnia wiersz poleceń do bezpośredniego wpisywania składni języka, co czyni go przydatnym do testowania i innych szybkich poleceń i operacji systemowych. REXX dobrze sprawdza się więc jako język do klejenia, ponieważ jest w stanie połączyć funkcje z innych programów w jednym skrypcie. Jednym z jego największych atutów jest jego konstrukcja jako języka makro. Twórcy programów mogą po prostu dodać obsługę REXX do swojego oprogramowania, aby można było pisać makra bez konieczności programowania własnego języka makr w swoim oprogramowaniu.
Inną cechą REXXa jest jego składnia o dowolnej formie, która sprawia, że język jest podobny do innych języków skryptowych, takich jak Perl. Dzięki tej możliwości korzystanie z języka staje się prostsze, ponieważ wymagania dotyczące pozycjonowania, takie jak wcięcia i znaki końca wiersza, są mniej rygorystyczne. Co więcej, cała składnia użyta w języku to tylko 23 konkretne instrukcje. Ten mały zestaw instrukcji, ze swoimi operandami, jest w stanie łączyć się z praktycznie wszystkim, w tym graficznym interfejsem użytkownika (GUI), bazami danych i serwerami WWW. Z tego powodu REXX jest czasami używany jako język skryptowy wspólnego interfejsu bramy (CGI) na serwerach internetowych.
Inną nieco unikalną cechą języka jest brak typów danych. REXX używa tylko ciągów znaków jako typów danych. Znaczenie ciągów zależy od ich użycia, a matematykę można wykonać na dowolnym ciągu, który tworzy prawidłową liczbę. Ta nieodłączna zdolność do pracy z ciągami sprawia, że język jest przydatny do analizowania i przetwarzania tekstu.