REXX stands for "restructured extended executor." It is a programming language that was created to be easy to learn and use, and it contains aspects of a natural language and relieves the programmer of having to fuss with numerous details in the computer's operation. For this reason, it is referred to as a high-level programming language, or scripting language. The language also boasts a number of additional features, such as a free-form, simplified syntax, a very small instruction set, and no need for data type declarations.
Originally created in 1979 by Michael Cowlishaw, who was working for IBM® at the time, it was first dubbed Rex, "a reformed executor," and the additional "X" was added later to avoid confusion with other products. Cowlishaw developed the language, during his spare time over the course of a couple years, to serve as a scripting language that could be used on either IBM® mainframe computers or any other system. IBM® released REXX as a product in 1982, due to increasing popularity. Since then, the language has made its way onto every computing platform, including desktop personal computers and mobile devices.
As an interpreted language, REXX is frequently used as a scripting language, where the code is saved in a simple text file and then executed by the interpreter. Of course, the interpreter may also be operated as a separate program, which provides a command prompt for directly typing in language syntax, making it useful for testing and other quick system commands and operations. REXX serves well as a glue language, then, as it is able to pull together functions from other programs in a single script. One of its greatest strengths is its design as a macro language. Program developers can simply add REXX support to their software so that macros can be written without having to program their own macro language into their software.
Another of REXX's features is its free-form syntax, which makes the language similar to other scripting languages, such as Perl. With this capability, the use of the language becomes simpler since positioning requirements, such as indentation, and end-of-line characters are less stringent. Furthermore, the entire syntax used in the language is only 23 specific instructions. This small instruction set, with its operands, is capable of interfacing with virtually anything, including graphical user interfaces (GUI), databases, and web servers. For this reason, REXX is sometimes used as a common gateway interface (CGI) scripting language on web servers.
One other somewhat unique trait to the language is its lack of data types. REXX uses only character strings as data types. The meanings of the strings depend on its use, and mathematics can be performed on any string that forms a valid number. This inherent ability to work with strings makes the language useful for parsing and processing text.