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.