REXX Programming Language: What it is, Where it's Used, and Why You Should Care

REXX Programming Language

REXX programming or Restructured Extended Executor is a structured general-purpose programming language used by programmers across the world. This high-level IT language was first developed by IBM Fellow Mike Cowlishaw, and it is known for its efficiency. 

Ease of use, versatility and cross-platform compatibility (and its prevalence in IBM mainframe operating systems) are just some of the reasons REXX remains relevant over 40 years since its creation. 

Let’s take a deeper look at how REXX is most often used and why more programmers are opting to learn this language to use across all.  

A Brief History of REXX Programming Language

REXX was first designed in the late 1970s (between 1979-1982) as a scripting programming language. Due to its origins, Classic REXX is often considered a precursor to Python and Tcl. 

💡 Did You Know?
REXX did not always start off with a double X in its name. The original name of REXX was simply Rex. The additional X was added to create a more unique name, and so there would be no confusion with other products that were currently on the market.

The first main open-source REXX ports became available in 1992, and the first REXX standard was published in 1996. There are currently 9 free REXX interpreters running across various platforms.

This versatile programming language has been used extensively over the years and has made a lot of progress in the IT realm. The REXX Language Association Symposium celebrated the 40th anniversary of REXX in 2019.  

The Benefits of REXX Programming

REXX is a favorite of many developers because it is easy to use and offers quick coding for larger applications.

REXX programming offers a wide range of benefits. These include:

REXX offers many efficient key features that programmers can use across a variety of fields.

What Are the Key Features of REXX Programming Language?

REXX is widely used across several platforms and industries because of the many key features it offers. It runs on all operating systems and is prioritized on IBM mainframes.

Some of the highlights of REXX programming include:

  • Popular programming structures
  • Readability
  • Free Format
  • Broad mathematical capacities
  • Powerful functions
  • Accessible built-in functions
  • Debugging capabilities
  • Broad parsing capabilities
  • Option to intermix with commands to different host environments
  • TSO/E implementation, allowing REXX execs to run in any MVS™ address space
  • Access to z/OS UNIX callable services through z/OS UNIX extensions

Since REXX has the capability to perform many different functions, it is a high-level IT program and is a good fit for experienced programmers. However, even beginners can utilize it with the right training.


REXX Subroutines and Functions

REXX has over sixty built-in functions that are portable to all REXX implementations, providing string-handling, math, and information about the programming environment. The TSO/E REXX implementation also contains z/OS-specific functions, including: 

  • OUTTRAP() traps TSO command output
  • LISTDSI() provides detailed information about an MVS dataset
  • SYSDSN() validates that a dataset name is valid
  • USERID() returns the TSO userid that is running the program 

For a general understanding of the language structure, here are some basic notes on running the built-in TSO/E functions:

  • Built-in functions are efficient, with no program load required
  • Function arguments are separated by commas
  • Any arguments specifying a length must be zero or a positive whole number
  • Parentheses are always required in a function
  • String functions support double-byte character sets (DBCS) for Asian language support
  • A specified pad character must be one exactly character long
  • Optional function arguments can be selected by specifying the first character of a string

Aside from these built-in functions, there are also external functions for programmers to consider. Just like all programming languages, training (and recency) is crucial for making the most of REXX.

What are REXX External Functions?

You can write your own subroutines and external functions using the REXX language.  These functions can either be used to supplement or replace the current TSO/E external functions. 

With REXX, you have the option of storing the function in a variety of formats, including the PDS from which the same exec is loaded, as well as data sets allocated to SYSEXEC or SYSPROC.

Learn More

REXX in Mainframes: There’s Plenty This Language Offers

REXX is essentially a scripting language that aims to make scripting as reliable and error-free as possible for programmers. It is a very powerful procedure language that was designed to be programmer-friendly and easy to debug.

REXX can be used for a wide range of tasks, but specifically, it is very helpful for developing programs that perform text file transformations. Some of the best times to use REXX include:

  • ISPF applications
  • Mainframe application programs
  • Extracting information from reports
  • Web-enabling mainframe data and processes
  • Automating mainframe operations using IBM Z® NetView®, Broadcom OPS/MVS®, and BMC AMI OPS
  • System programming and administration
  • One-time quick solutions

Anyone working in Scripting, Data Processing, and Macro Languages will find REXX a useful programming skill to have.

Why Programmers Are Still Choosing the REXX Programming Language


REXX in Mainframes

The main purpose ofcreating REXX was to simplify PL/I programming, and this programming language has definitely enhanced user experience for programmers across the globe.

REXX can be used as an application development language as well as a scripting, macro language. REXX is also useful in CGI programming and is often used as the primary scripting language in operating systems like MVS and VM. Some software — such as KEDIT and SPF/PC — utilize REXX as an internal macro language.

One of the factors that makes the REXX language much easier to read and write, is the fact that a lot of the instructions are basic English words. Instead of using abbreviations like a lot of other programs do, REXX uses common English words such as EXIT, SAY, THEN, END, and PULL. 

Programmers often turn to REXX support to help them with processing data and generating reports. This language is a preferred choice for many because it was designed for ease of learning and reading and offers a better user experience alongside its versatility.

Programmers who want to start implementing REXX into their work processes should start taking REXX programming courses to facilitate the process.

REXX TutorialsYou Need to Stay Up to Date

Programmers can always choose to enhance their portfolios and career by taking courses.

At ProTech, we offer a wide range of courses to equip you with the skills you need to learn REXX programming and REXX instructions so you can implement them on a daily basis.

Some of the courses we offer include:

Start Your REXX Programming Training at ProTech Today

At ProTech Training, we offer a wide range of REXX courses and have been educating the IT community for over 30 years. We have trained over one million students in REXX programming and other technology and have many unique courses to choose from.

ProTech is the go-to training partner for over 60% of the Fortune 500 and many government agencies. Browse a large catalog of courses for beginner, intermediate, and advanced IT professionals.

Published October 11, 2022