home *** CD-ROM | disk | FTP | other *** search
-
- 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.
-