REXX Frequently Asked Questions list

Автор: Eric Giguere

Дата: 1993

A postscript version of this file is available on
as the file /pub/, and a Word for Windows version as the
file /pub/rexxfaq.doc.

                                              The REXX SourceBook
                            Frequently Asked Questions About REXX
                                     Last Revised:  July 22, 1993
                                                     Eric Giguere

Copyright Information

     This document is copyright )1993 by Eric Giguhre.
     Permission is granted to reproduce and distribute all or
     part of this document for non-commercial purposes only.  All
     other uses must first be cleared with the author.  The
     author may be contacted on the Internet at the address or on paper by writing to WATCOM
     International, 415 Phillip Street, Waterloo, Ontario,
     Canada, N2L 3X2.  Please note, however, that this document
     is not published or endorsed by WATCOM.

     This document is intended to serve as a useful reference for
     REXX-related information.  It aims for breadth as opposed to
     depth, and references to other material are given where
     appropriate.  Suggestions and updates should be sent to the
     author in an attempt to keep this document relevant and up-
A. What Is REXX?

     REXX is a programming language designed by Michael Cowlishaw
     of IBM UK Laboratories.  In his own words:  "REXX is a
     procedural language that allows programs and algorithms to
     be written in a clear and structured way."
     REXX doesn't look that different from any other procedural
     language.  Here's a simple REXX program:
          /* Count some numbers */
          say "Counting..."
          do i = 1 to 10
              say "Number" i
     What makes REXX different from most other languages is that
     it is also designed to be used as a macro language by
     arbitrary application programs.  The idea is that
     application developers don't have to design their own macro
     languages and interpreters.  Instead they use REXX as the
     macro language and support the REXX programming interface.
     If a REXX macro comes across an expression or function call
     that it cannot resolve, it can ask the application to handle
     it instead.  The application only has to support the
     features that are specific to it, freeing the developer from
     handling the mundane (and time-consuming) task of writing a
     language interpreter.  And if all applications use REXX as
     their macro language, the user only has to learn one
     language instead of a dozen.
B. REXX and the Internet

     Networks connect computers in various ways for the exchange
     of data.  The terminology is a bit confusing to the new
     user.  Here are the definitions this document uses:

       Usenet: Not really a network, just the set of machines
       that exchange network news.  Network news is really an
       extended form of electronic mail that groups messages
       from individuals into newsgroups that users can read
       using special newsreaders.

       Internet: The worldwide network based on TCP/IP
       protocols.  Besides being able to receive mail and
       newsgroups, these machines can use programs like ftp and
       telnet to communicate with other machines in real time.
       Most Internet machines are Unix-based.

       BITNET: The worldwide network that connects many IBM
       mainframes.  BITNET users can also transfer files using
       methods that are incompatible with those of the Internet.

     The Usenet group comp.lang.rexx exists for discussion of
     REXX in all its variations.  Anything posted to this
     newsgroup also gets sent to the REXXLIST mailing list (see
     below) and vice-versa.

     Other newsgroups of interest are machine-specific.
     Recommended groups are comp.os.os2.programmer and
     FTP Sites of Interest

     FTP is a file transmission protocol used on the Internet to
     transfer files between machines.  The transfers are done in
     real time and usually require that the user have an account
     on both machines.  However, many machines on the Internet
     support what is known as anonymous FTP, which allows users
     on other machines access to a limited set of files without
     requiring an account.  Some of the more interesting sites
     that offer this service are:        General repository for REXX-related
                                 information, including free REXX
                                 interpreters for Unix and DOS.  An
                                 XEDIT clone for Unix and OS/2 may
                                 also be found here.  Look under
                                 /pub/rexx.      The official home of Regina, one of
                                 the free Unix interpreters.  An
                                 archive of the messages in
                                 comp.lang.rexx is also maintained
                                 here.  Check under /pub/rexx.        General OS/2 archives.  Look under              /pub/os2.
                                          General Amiga archive.  Look under
     Mailing Lists

     Mailing lists are similar to newsgroups but use normal
     electronic mail to deliver the messages.  The following
     mailing lists are mostly BITNET-based but are accessible
     from the Internet as well:
       List name     BITNET      Internet           Discusses
                      Node        Address
       REXXLIST      UCF1VM    REXX in general
        AREXX-L      UCF1VM    Amiga REXX
        PC-REXX      UCF1VM    Personal REXX
       REXXCOMP      UCF1VM    IBM's REXX compiler
       TSO-REXX      UCF1VM    TSO REXX
        VM-REXX      UCF1VM    VM/SP REXX
        UREXX-L      (none)      Unix REXX
     To subscribe to any of these lists, send a one-line message
     to the address LISTSERV@node, where node is the BITNET node
     or Internet address for the list you wish to join.  In the
     body of your message should be the line
               SUBSCRIBE list-name your--full-name
     as in
                 SUBSCRIBE UREXX-L Eric Giguere
     You will then be subscribed to the list and messages will
     start arriving in your mailbox.  To send a message to the
     list, simply mail it to listname@node, as in UREXX-  Note the distinction between the
     LISTSERV address and the listname address.  You can receive
     help by sending a HELP message to the LISTSERV address.
     Note that some of these mailing lists may be available on
     Usenet in the form of newsgroups with names starting with
     "bit.listserv".  Ask your system administrator if you're not

     Thanks to Scott Ophof for providing this summary.
     Gopher Service

     Gopher clients may find REXX-related information at the site
C. Free REXX Products


     There are at least three REXX interpreters available for
     free on the Internet.  The first two are Unix based and are
     well-supported by their authors.  The third is an MS-DOS

     Regina is Anders Christensen's REXX interpreter for various
     flavours of Unix and VMS.  It is fairly complete and Anders
     even has an API for developers.  It also apparently can be
     ported to OS/2.  Anders can be reached at  Regina's official home is

     REXX/imc is Ian Collier's REXX interpreter for SunOS, though
     it has also been ported to other Unix systems.  Ian can be
     reached at

     BREXX is Bill Vlachoudis' REXX interpreter for MS-DOS.  The
     interpreter is not complete but is quite small.  Bill can be
     reached at

     All three interpreters are available for anonymous FTP on in the /pub/freerexx directory, each
     interpreter in its own subdirectory.  Regina and REXX/imc
     are in source form, BREXX is only available as binary.
     REXX-Aware Text Editors

     Also on in the /pub/editors directory is
     the text editor THE by Mark Hessling
     (  THE is a full-featured
     XEDIT/KEDIT clone (by XEDIT here we mean the IBM mainframe
     text editor, not the X Windows editor xedit) with REXX
     support.  THE is available in versions for OS/2 and Unix.
     THE's official home is on in /src/THE.
D. Commercial REXX Products


     REXX interpreters are available commercially for a wide
     variety of systems and come standard on some operating
     platforms such as the Amiga, OS/2 and the IBM mainframes.
     The following vendors sell REXX interpreters:
          The Workstation Group     [Various UNIX platforms, also VMS]
          6300 River Road
          Rosemont, IL  60018
          (800) 228-0255 (US only)

          Quercus Systems          [DOS, Windows, Windows NT, OS/2]
          P.O. Box 2157
          Saratoga, CA  95070
          (408) 867-7399
          Kilowatt Software        [DOS, Windows, Tandem]
          P.O. Box 209
          Reynoldsburg, Ohio  43068
          (800) 848-9474 (US only)
          (614) 866-4300

     Although REXX is usually thought of as an interpreted
     language, it can also be compiled.  The following vendors
     all sell REXX compilers:
          Dineen Edwards Group          [Amiga]
          19785 West 12 Mile Road, Suite 305
          Southfield, MI  48076-2553
          (313) 352-4288
          IBM                 [MVS/TSO and VM/CMS]
          Contact your local representative
          Systems Center           [VM/CMS]
          1800 Alexander Bell Drive
          Reston, VA  22091
     Visual Development Environments

     There are two REXX-based visual development environments
     available for OS/2:
          VX-REXX        WATCOM International
                         415 Phillip Street
                         Waterloo, Ontario
                         Canada  N2L 3X2
                         Phone: (519) 886-3700
                         Fax: (519) 747-4971
          VisPro/REXX    HockWare
                         P.O. Box 336
                         Cary, NC 27512-0336
                         Phone: (919) 387-7391
                         Fax: (919) 380-0757
     REXX-Aware Text Editors

     Clones of the popular XEDIT editor are available for Unix
     from the Workstation Group (see address above) and for DOS
     and OS/2 from Mansfield Software.
          Mansfield Software
          P.O. Box 532
          Storrs, CT  06268
          Phone: (203) 429-8402
          Fax: (203) 487-1185
     The OS/2 Enhanced Editor (EPM.EXE), which is bundled with
     OS/2, also has REXX support.  Use its online help and search
     for the 'rx' command.

     The American National Standards Institute (ANSI) sets
     national standards for various things in the United States,
     including programming languages.  The X3J18 REXX Standards
     Committee is currently defining a formal standard for the
     REXX language, using Mike Cowlishaw's book as its base
     document.  The Committee meets 3 or 4 times a year and holds
     ongoing discussions throughout the year by electronic mail.
     Members of X3J18 are mostly REXX implementors, but anyone
     can participate.  The Committee intends to release a draft
     standard next year.  More information can be had from the
     vice-chair, Neil Milsted at
     Note that public ANSI documents relating to X3J18 can be had
     using the LISTSERV service at PSUVM on BITNET or by Gopher
     to on the Internet.
F. REXX Bibliography

     Mike Cowlishaw has kindly provided the following partial
     bibliography of REXX books.
          The REXX Language -- M.F. Cowlishaw
               English:       ISBN 0-13-780735-X  Prentice-Hall, 1985
                         ISBN 0-13-780651-5  2nd edition, 1990
               German:   ISBN 3-446-15195-8  Carl Hanser Verlag, 1988
                         ISBN 0-13-780784-8  P-H International, 1988
               Japanese: ISBN 4-7649-0136-6  Kindai-kagaku-sha, 1988
          Modern Programming Using REXX -- Robert P. O'Hara and
               David R. Gomberg
               English:  ISBN 0-13-597311-2  Prentice-Hall, 1985
                         ISBN 0-13-579329-5  2nd edition, 1988
          REXX in the TSO Environment -- Gabriel F. Gargiulo
               ISBN 0-89435-354-3, QED Information Systems Inc.
               320 pages, 1990.
          Practical Usage of REXX -- Anthony S. Rudd
               ISBN 0-13-682790-X, Ellis Horwood (Simon & Schuster), 1990
          Using ARexx on the Amiga -- Chris Zamara and Nick Sullivan
               ISBN 1-55755-114-6, Abacus Books, 1991
          The REXX Handbook -- Edited by Gabe Goldberg and Phil Smith III
               ISBN 0-07-023682-8, McGraw-Hill, 1991
          Programming in REXX -- Charles Daney
               ISBN 0-07-015305-1, McGraw-Hill, 1992
          Command Language Cookbook -- Hallett German
               ISBN 0-442-00801-5, Van Nostrand Reinhold, 1992
G. Frequently Asked Questions

     1. Is REXX better than <some other language>?

     Short answer:  Yes.  No.  Maybe.  Does it matter?

     Long answer:  This question wastes a lot of bandwidth in
     comp.lang.rexx and other newsgroups.  Every language has its
     good points and its bad points.  Some people love REXX, some
     people hate it.  Use a language that suits your needs.

     (Editorial digression:  Programming languages are like
     sexual positions -- some are more exciting than others, some
     are more difficult, some are unusual, few have tried them
     all, and everyone has a favorite.)
     2. Why does my OS/2 REXX program run more quickly the second

     When you run a REXX CMD file for the first time, a tokenized
     version will be stored on disk using the OS/2 extended file
     attributes.  (You can see how big the tokenized version is
     by using the /N option on the DIR command.)  If a tokenized
     version exists AND the file has not been modified, CMD.EXE
     will use the tokenized version instead of parsing the

     Note that there is a 64K limit on the size of an extended
     attribute entry, so very large REXX programs do not benefit
     from this automatic tokenization.