Application programming on z/OS
Previous topic | Next topic | Contents | Glossary | Contact z/OS | PDF


Compiling and executing REXX command lists

Application programming on z/OS

The process of compiling a REXX™ source program and then link-editing the object deck into a load module is basically the same as it is for COBOL.

A REXX program compiled under z/OS® can run under z/VM®. Similarly, a REXX program compiled under z/VM can run under z/OS. A REXX program compiled under z/OS or z/VM can run under z/VSE™ if REXX/VSE is installed.

There are three main components of the REXX language when using a compiler:
  • IBM® Compiler for REXX on zSeries®. The Compiler translates REXX source programs into compiled programs.
  • IBM Library for REXX on zSeries. The Library contains routines that are called by compiled programs at run-time.
  • Alternate Library. The Alternate Library contains a language processor that transforms the compiled programs and runs them with the interpreter. It can be used by z/OS and z/VM users who do not have the IBM Library for REXX on zSeries to run compiled programs.

The Compiler and Library run on z/OS systems with TSO/E, and under CMS on z/VM systems. The IBM Library for REXX in REXX/VSE runs under z/VSE.

The Compiler can produce output in the following forms:

  • Compiled EXECs. These EXECs behave exactly like interpreted REXX programs. They are invoked the same way by the system's EXEC handler, and the search sequence is the same. The easiest way of replacing interpreted programs with compiled programs is by producing compiled EXECs. Users need not know whether the REXX programs they use are compiled EXECs or interpretable programs. Compiled EXECs can be sent to z/VSE to be run there.
  • Object decks under z/OS or TEXT files under z/VM.
  • A TEXT file is an object code file whose external references have not been resolved (this term is used on z/VM only). These must be transformed into executable form (load modules) before they can be used. Load modules and MODULE files are invoked the same way as load modules derived from other compilers, and the same search sequence applies. However, the search sequence is different from that of interpreted REXX programs and compiled EXECs. These load modules can be used as commands and as parts of REXX function packages. Object decks or MODULE files can be sent to z/VSE to build phases.
  • IEXEC output. This output contains the expanded source of the REXX program being compiled. Expanded means that the main program and all the parts included at compilation time by means of the %INCLUDE directive are contained in the IEXEC output. Only the text within the specified margins is contained in the IEXEC output. Note, however, that the default setting of MARGINS includes the entire text in the input records.
Related reading: You can find more information about REXX in the following publications:

Also, visit the following Web site:

http://www-306.ibm.com/software/awdtools/rexx/





Copyright IBM Corporation 1990, 2010