REXX Frequently Asked Questions list

Автор: Eric Giguere

Дата: 1993


A postscript version of this file is available on rexx.uwaterloo.ca
as the file /pub/rexxfaq.ps, 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
                                             giguere@watcom.on.ca


----------------------------------------------------------------
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
     giguere@watcom.on.ca 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.
    
----------------------------------------------------------------
Introduction

     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-
     to-date.
    
----------------------------------------------------------------
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
          end
    
     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.
    
     Newsgroups

     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
     comp.sys.amiga.programmer.
    
     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:

        rexx.uwaterloo.ca        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.

        flipper.pvv.unit.no      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.

        ftp-os2.cdrom.com        General OS/2 archives.  Look under
        ftp.luth.se              /pub/os2.
                                     
        wuarchive.wustl.edu      General Amiga archive.  Look under
                                 /pub/aminet.
    
     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    ucf1vm.cc.ucf.edu    REXX in general
        AREXX-L      UCF1VM    ucf1vm.cc.ucf.edu    Amiga REXX
        PC-REXX      UCF1VM    ucf1vm.cc.ucf.edu    Personal REXX
       REXXCOMP      UCF1VM    ucf1vm.cc.ucf.edu    IBM's REXX compiler
       TSO-REXX      UCF1VM    ucf1vm.cc.ucf.edu    TSO REXX
        VM-REXX      UCF1VM    ucf1vm.cc.ucf.edu    VM/SP REXX
        UREXX-L      (none)    liverpool.ac.ak      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-
     L@liverpool.ac.uk.  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
     sure.

     Thanks to Scott Ophof for providing this summary.
    
     Gopher Service

     Gopher clients may find REXX-related information at the site
     bigblue.pvv.unit.no.
    
----------------------------------------------------------------
C. Free REXX Products

    
     Interpreters

     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
     interpreter.

     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
     anders@pvv.unit.no.  Regina's official home is
     flipper.pvv.unit.no.

     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 imc@prg.ox.ac.uk.

     BREXX is Bill Vlachoudis' REXX interpreter for MS-DOS.  The
     interpreter is not complete but is quite small.  Bill can be
     reached at bill@donoussa.physics.auth.gr.

     All three interpreters are available for anonymous FTP on
     rexx.uwaterloo.ca 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 rexx.uwaterloo.ca in the /pub/editors directory is
     the text editor THE by Mark Hessling
     (mark@snark.itc.gu.edu.au).  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 ftp.gu.edu.au in /src/THE.
    
----------------------------------------------------------------
D. Commercial REXX Products

     Interpreters

     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)
          sales@wrkgrp.com
    
          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
    
     Compilers

     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.
    
----------------------------------------------------------------
E. REXX and ANSI

     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 nfnm@wrkgrp.com.
     Note that public ANSI documents relating to X3J18 can be had
     using the LISTSERV service at PSUVM on BITNET or by Gopher
     to bigblue.pvv.unit.no 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
     time?

     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
     source.

     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.