home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / lang / rexx / 1433 < prev    next >
Encoding:
Text File  |  1992-12-21  |  18.6 KB  |  447 lines

  1. Newsgroups: comp.lang.rexx
  2. Path: sparky!uunet!cs.utexas.edu!torn!watserv2.uwaterloo.ca!csg.uwaterloo.ca!giguere
  3. From: giguere@csg.uwaterloo.ca (Eric Giguere)
  4. Subject: REXX Frequently Asked Questions
  5. Message-ID: <BzGr38.EM@watserv2.uwaterloo.ca>
  6. Sender: news@watserv2.uwaterloo.ca
  7. Organization: Computer Systems Group, University of Waterloo
  8. Date: Fri, 18 Dec 1992 16:28:20 GMT
  9. Lines: 436
  10.  
  11.  
  12. FAQ Version Number: 6
  13. Last posted:  November 3, 1992
  14. Last updated: November 25, 1992
  15. Changes since last update:  New address for Kilowatt Software
  16.  
  17. This posting contains a list of answers to Frequently Asked Questions 
  18. about the REXX programming language.  The list is maintained by Eric Giguere
  19. (giguere@csg.uwaterloo.ca) and posted at regular intervals to 
  20. comp.lang.rexx.
  21.  
  22.  
  23. Topics:
  24.  
  25.     [General Information]
  26.  
  27.      1) What is REXX?
  28.      2) What is the reference book for REXX?
  29.      3) Information on ANSI and REXX
  30.      4) REXX conference information
  31.      5) FTP sites for REXX-related material
  32.      6) Free versions of REXX
  33.      7) Commercial versions of REXX
  34.      8) Newsgroups and mailing lists
  35.      9) Selected Bibliography
  36.     10) Is REXX better than Perl?
  37.  
  38.     [Programming Questions]
  39.  
  40.     A) Why does my OS/2 REXX program run more quickly the second time? 
  41.     B) Where do I get documentation on adding ARexx support to my
  42.        programs? (Amiga-specific)
  43.     C) Where can I get patches for my OS/2 REXX?
  44.     D) Can I put up Presentation Manager windows and dialogs from      
  45.        the OS/2 REXX?
  46.      
  47. ----------------------------------------------------------------------------
  48. 1) What is REXX?
  49.  
  50.     REXX is a programming language designed by Michael Cowlishaw of IBM
  51. UK Laboratories.  In his own words:  "REXX is a procedural language that
  52. allows programs and algorithms to be written in a clear and structured
  53. way."  
  54.  
  55.     Syntactically, REXX doesn't look that different from any other
  56. procedural language.  Here's a simple REXX program:
  57.  
  58.             /* Count some numbers */
  59.  
  60.             say "Counting..."
  61.             do i = 1 to 10
  62.                 say "Number" i
  63.             end
  64.  
  65.     What makes REXX different from most other languages is its capability
  66. for being used as a _macro language_ for arbitrary applications.  The
  67. idea here is that application developers don't have to design their own
  68. macro languages and accompanying interpreters.  Instead they use REXX as
  69. the basis for that language and support the REXX programming interface.
  70. When a REXX program runs and comes across an expression or function that 
  71. isn't part of the base language definition, it can ask the application
  72. if it knows how to handle it.  The application only has to support 
  73. features that are specific to it, freeing the developer from handling
  74. the mundane task of writing a language interpreter.  And if all applications
  75. use REXX as their macro language, the user only has to learn one language
  76. instead of a dozen.
  77.  
  78.  
  79. ----------------------------------------------------------------------------
  80. 2) What is the reference book for REXX?
  81.  
  82.     The "standard" reference for REXX is Mike Cowlishaw's _The REXX
  83. Language: A Practical Approach To Programming_, currently in its second
  84. edition.  (The first edition had "REXX" in blue on the cover, the
  85. second edition has it in red instead.)  Mike's book is often referred
  86. to as either "TRL" or "the red book".  Until the ANSI committee releases
  87. its standard, TRL is the document that defines what REXX is.  (See the
  88. bibliography below for details on TRL.)
  89.  
  90. ----------------------------------------------------------------------------
  91. 3) Information on ANSI and REXX
  92.  
  93. The American National Standards Institute (ANSI) sets national standards
  94. for various things in the United States, including programming languages.
  95. The X3J18 REXX Standards Committee has been established to defined a
  96. formal standard for the REXX language, using TRL as its base document.
  97. The Committee meets 3 or 4 times a year and holds ongoing discussions
  98. throughout the year.  Members of X3J18 mostly include REXX implementors
  99. and some users, but anyone can participate.  More information on X3J18
  100. can be had from Brian Marks (chair), marks@winvmd.vnet.ibm.com
  101. or Neil Milsted (vice-chair), nfnm@wrkgrp.com.
  102.  
  103. ----------------------------------------------------------------------------
  104. 4) REXX conference information
  105.  
  106. The Stanford Linear Accelerator Center (SLAC), a heavy user of REXX
  107. on several platforms, sponsors the REXX Symposium, an annual gathering
  108. for REXX users and implementors.  The last Symposium was held in May
  109. of 1992.  The next Symposium is planned for the spring of 1993, probably
  110. on the west coast of the US.
  111.  
  112. For more information on the Symposium, and information on receiving
  113. proceedings of previous Symposiums, contact Cathie Dager at SLAC,
  114. cathie@slacvm.slac.stanford.edu.
  115.  
  116. ----------------------------------------------------------------------------
  117. 5) FTP sites for REXX-related material
  118.  
  119.     The site rexx.uwaterloo.ca (maintained by giguere@csg.uwaterloo.ca)
  120. is a (currently small) repository for REXX-related material.
  121.  
  122.     REXX-related materials for specific systems can also be found
  123. on FTP sites serving those systems: 
  124.  
  125.             wuarchive.wustl.edu     (Amiga)
  126.             ftp-os2.nmsu.edu        (OS/2)
  127.             software.watson.ibm.com (OS/2 -- official IBM support)
  128.  
  129. ----------------------------------------------------------------------------
  130. 6) Free versions of REXX
  131.  
  132.     REXX interpreters come bundled with the operating system on the
  133. Amiga (Workbench 2.0 and higher) and under OS/2 2.0.  REXX also comes
  134. on certain IBM mainframe systems running CMS or MVS.
  135.  
  136.     Currently there are three freely-distributable interpreters (with
  137. source) for Unix machines, all available for anonymous FTP from
  138. rexx.uwaterloo.ca:
  139.  
  140.     /pub/freerexx/regina/regina-0.03d.tar.Z       254939   ANSI C
  141.           files originally from flipper.pvv.unit.no
  142.  
  143.     /pub/freerexx/alrexx/rx102.tar.Z              671904   C++ (using GNU G++)
  144.           files originally from tony.cat.syr.edu
  145.  
  146.     /pub/freerexx/imc/rexx-imc-1.3.tar.Z          491691   ANSI C
  147.           currently only runs on SunOS machines
  148.  
  149. To compile, the first two interpreters require Lex and Yacc (or suitable 
  150. clones).  All are still beta versions, though imc has been around the longest
  151. and claims to be quite stable.  (Note: "regina" was called "andersrexx"
  152. in previous FAQs because I couldn't remember the interpreter name.)
  153.  
  154. ----------------------------------------------------------------------------
  155. 7) Commercial versions of REXX
  156.  
  157.     The following vendors sell REXX for various platforms:
  158.  
  159.  
  160.         Wishful Thinking Development Corp.    [Amiga]
  161.         P.O. Box 308
  162.         Maynard, MA 01754
  163.         (508) 568-8695
  164.  
  165.  
  166.         The Workstation Group       [Various UNIX platforms, also VMS]
  167.         6300 River Road
  168.         Rosemont, IL 60018
  169.         (800) 228-0255 (US only)
  170.         sales@wrkgrp.com
  171.  
  172.  
  173.         Quercus Systems     [DOS, Windows, OS/2]
  174.         P.O. Box 2157
  175.         Saratoga, CA 95070
  176.         (408) 867-7399
  177.  
  178.  
  179.         Kilowatt Software   [DOS, Windows, Tandem]
  180.         P.O. Box 209
  181.         Reynoldsburg, Ohio 43068
  182.         (800) 848-9474 (US only)
  183.         (614) 866-4300
  184.  
  185.  
  186.         Dineen Edwards Groups    [REXX compiler for the Amiga]
  187.         19785 W. 12 Mile Rd., Suite 305
  188.         Southfield, MI 48076-2553
  189.         (313) 352-4288
  190.  
  191.  
  192.         IBM   [REXX compiler for MVS/TSO and VM/CMS]
  193.         Contact your local rep
  194.         Program numbers:  5695-013 (compiler)
  195.                           5695-014 (library)
  196.  
  197.  
  198.         Systems Center   [REXX compiler for VM]
  199.         1800 Alexander Bell Dr.
  200.         Reston, VA 22091
  201.  
  202.     There also exist vendors for various platforms (Amiga, OS/2, 370)
  203.     that sell extensions and enhancements for REXX intepreters.
  204.  
  205. ----------------------------------------------------------------------------
  206. 8) Newsgroups and mailing lists
  207.  
  208.     On Usenet the group comp.lang.rexx exists for discussion of REXX
  209. in all its variations.  Currently the comp.lang.rexx newsgroup is also
  210. gatewayed with the REXXLIST mailing list (i.e., anything that gets posted
  211. to the newsgroup is sent to everyone on the mailing list and anything that
  212. is sent to the mailing list gets posted to the newsgroup).
  213.  
  214.     Those without Usenet access will be interested primarily in the 
  215. various mailing lists available.  The following information, kindly provided
  216. by Scott Ophof, describes how to subscribe to the various lists and what
  217. lists exist.  Note that these mailing lists are BITNET-based and Internet 
  218. sites might have use the proper Internet domain-based names (given at the
  219. end) instead of the BITNET node names.
  220.  
  221.      -- Subscribing to the list:
  222.  
  223.             To receive postings from a list discussing REXX, send e-mail to:
  224.  
  225.                    LISTSERV@some-node-address
  226.  
  227.             with the following line as body:
  228.  
  229.                    SUBSCRIBE list-name Your-full-name
  230.  
  231.             See list below for which "list-name" to use.  "Your-full-name" 
  232.             is your NAME, *not* your e-mail address...
  233.  
  234.             Example: If I wanted to read more about what is going on with 
  235.             the REXX compiler for VM, I'd send e-mail to LISTSERV@UCF1VM
  236.             and insert as the first and only line:
  237.  
  238.                    SUBSCRIBE REXXCOMP F. Scott Ophof
  239.  
  240.             North Americans may want to send their subscription request to
  241.             LISTSERV@uga.cc.uga.edu, Europeans might want to send their
  242.             request to LISTSERV@DEARN, those in the Far East to 
  243.             LISTSERV@TWNMOE10, etc.  The list server you send your request
  244.             to will automatically forward that request to the server nearest
  245.             you if possible.
  246.  
  247.       -- Receiving postings:
  248.  
  249.             Once you've subscribed to the list, any mail sent to the list
  250.             will automatically be sent to you as well, at the address you
  251.             used to subscribe to the list.  The mail will come to you just
  252.             like the rest of you email.  
  253.  
  254.       -- Posting to the list:
  255.  
  256.             To post something to the list, use the email address listed
  257.             below under "List Address".  You can also simply just reply
  258.             to a posting you've received in your mailbox as is usually
  259.             done (as long as it uses the "Reply-To:" header line).  Note 
  260.             that the list server will not normally send you a copy of 
  261.             anything you post.
  262.  
  263.       -- Mailing lists:
  264.  
  265.             List Name        List Address             Discusses
  266.  
  267.             AREXX-L          AREXX-L@UCF1VM           Amiga REXX
  268.             PC-REXX          PC-REXX@UCF1VM           Personal REXX
  269.             REXXCOMP         REXXCOMP@UCF1VM          REXX Compiler
  270.             TSO-REXX         TSO-REXX@UCF1VM          TSO REXX
  271.             UREXX-L          UREXX-L@Liverpool.ac.uk  Unix REXX
  272.             VM-REXX          REXXLIST@HEARN           VM/SP REXX
  273.                              VM-REXX@MARIST             "
  274.                              VM-REXX@OHSTVMA            "
  275.                              VM-REXX@UCF1VM             "
  276.             REXX-L           REXX-L@UIUCVMD           generic REXX
  277.                              REXX-L@UALTAVM             "
  278.             REXXLIST         REXXLIST@DEARN             "
  279.                              REXXLIST@EB0UB011          "
  280.                              REXXLIST@FINHUTC           "
  281.                              REXXLIST@OHSTVMA           "
  282.                              REXXLIST@POLYGRAF          "
  283.                              REXXLIST@TWNMOE10          "
  284.                              REXXLIST@UCF1VM            " 
  285.                              REXXLIST@UGA               "
  286.  
  287.             Note:
  288.                  - The list-names "REXXLIST" and "REXX-L" refer to the same 
  289.                    discussion group, i.e. non-implementation-specific REXX.
  290.                  - Subscription requests and cancelling of subscriptions 
  291.                    *must* be sent to <LISTSERV@that-node>, *not* to 
  292.                    <list-name@that-node>.
  293.                  - With one exception, BITnet addresses have been used here.`
  294.                    See the "Address Translation List" for the Internet form 
  295.                    of these addresses.
  296.                  - Please save the item you will receive on acceptance of your 
  297.                    subscription detailing what to send where; it also 
  298.                    contains info on how to cancel your subscription...
  299.  
  300.  
  301.       -- Address Translation List::
  302.  
  303.  
  304.             BITnet node      Internet address 
  305.             DEARN            %DEARN.BITnet@nic.surfnet.nl
  306.             EB0UB011         @sic.ub.es
  307.             FINHUTC          @finhutc.hut.fi
  308.             HEARN            @nic.surfnet.nl
  309.             MARIST           @VM.Marist.EDU
  310.             OHSTVMA          @OHSTVMA.ACS.OHIO-STATE.EDU
  311.             POLYGRAF         @graf.poly.edu
  312.             TWNMOE10         %TWNMOE10.BITnet@nic.surfnet.nl
  313.             UALTAVM          @vm.ucs.ualberta.ca
  314.             UCF1VM           @UCF1VM.CC.UCF.EDU
  315.             UGA              @uga.cc.uga.edu
  316.             UIUCVMD          %UIUCVMD.BITnet@uga.cc.uga.edu
  317.  
  318.  
  319. ----------------------------------------------------------------------------
  320. 9) Selected bibliography
  321.  
  322.     This is from Mike Cowlishaw.  Note that a VERY complete bibliography
  323.     can be found in _The REXX Handbook_.  (Any updates to the bibliography
  324.     should be sent to Linda Suskind Green, greenls@gdlvm7.vnet.ibm.com,
  325.     who will pass them on to the appropriate persons.)
  326.  
  327.       Modern Programming Using REXX -- Robert P. O'Hara and David R. Gomberg
  328.           In English:   ISBN 0-13-597311-2   Prentice-Hall, 1985
  329.                         ISBN 0-13-579329-5     (Second edition), 1988
  330.  
  331.       The REXX Language -- M. F. Cowlishaw
  332.           In English:   ISBN 0-13-780735-X   Prentice-Hall, 1985
  333.                         ISBN 0-13-780651-5     (Second edition), 1990
  334.           In German:    ISBN 3-446-15195-8   Carl Hanser Verlag, 1988
  335.                         ISBN 0-13-780784-8   P-H International, 1988
  336.           In Japanese:  ISBN 4-7649-0136-6   Kindai-kagaku-sha, 1988
  337.  
  338.       REXX In the TSO Environment -- Gabriel F. Gargiulo
  339.           ISBN 0-89435-354-3, QED Information Systems Inc.,
  340.           Order #CC3543;  320 pages, 1990
  341.  
  342.       Practical Usage of REXX -- Anthony S. Rudd
  343.           ISBN 0-13-682790-X, Ellis Horwood (Simon & Schuster), 1990
  344.  
  345.       Using ARexx on the Amiga -- Chris Zamara and Nick Sullivan
  346.           ISBN 1-55755-114-6, 424pp+diskette, Abacus, 1991
  347.  
  348.       The REXX Handbook -- Edited by Gabe Goldberg and Phil Smith III
  349.           ISBN 0-07-023682-8, 672pp, McGraw Hill, 1991
  350.  
  351.       Amiga Programmer's Guide to ARexx -- Eric Giguere
  352.           Commodore-Amiga, Inc., 1991
  353.  
  354.       Programming in REXX -- Charles Daney
  355.           ISBN 0-07-015305-1, 300pp, McGraw Hill, 1992
  356.  
  357.  
  358.     Note that IBM also publishes a whole slew of REXX-related documents,
  359.     sometimes referring to REXX as the "SAA Procedures Language".  One of
  360.     these documents is the SAA CPI Procedures Language Level 2 Reference,
  361.     SC24-5549.
  362.  
  363. ----------------------------------------------------------------------------
  364. 10) Is REXX better than Perl?
  365.  
  366.     Maybe.  Depends.  Yes.  No.  Does it matter?
  367.  
  368.     In case you don't know, Perl is a powerful scripting language with its
  369. roots in the Unix world.  If you're really interested in Perl, you should
  370. check out the comp.lang.perl newsgroup.
  371.  
  372. ----------------------------------------------------------------------------
  373. A) Why does my OS/2 REXX program run more quickly the second time?
  374.  
  375.     When you run a REXX CMD file for the first time after you've modified
  376. it, the REXX interpreter will actually store a tokenized version of the
  377. program on disk alongside the source version using the OS/2 extended file
  378. attributes.  You can see how big the tokenized version is by using the
  379. /N option on the DIR command:
  380.  
  381.         dir say.cmd
  382.         SAY      CMD      22     6-11-92   8:34a
  383.  
  384.  
  385.         dir /n say.cmd
  386.         6-11-92   8:34a       22        317    SAY.CMD
  387.  
  388. If a tokenized version exists AND you haven't modified the file, REXX will
  389. load the tokenized version instead of rereading the source.
  390.  
  391. ----------------------------------------------------------------------------
  392. B) Where do I get documentation on adding ARexx support to my programs? 
  393.    (Amiga-specific)
  394.  
  395.     If you want to make an ARexx command host, function host, or function
  396. library, or you want to learn what those terms mean, you need to get this
  397. book:
  398.  
  399.         Programmer's Guide to ARexx, P/N AREXX01
  400.         
  401. It includes a disk with full source code (in C, compatible with SAS/C and
  402. Manx Aztec C) to the examples.  It's an official Commodore publication
  403. and is aimed at developers but non-developers can order it.  In the United
  404. States, cost is $20 plus $3 S&H (add sales tax in Penn., Virginia, Calif.,
  405. Tenn. and Ill.).  Send your order to Commodore-Amiga Technical Support (CATS),
  406. Department C, Commodore Business Machines, 1200 Wilson Drive, West Chester,
  407. PA 19380.  In Canada, price is $20 plus $10 S&H plus 7% GST plus your PST.
  408. Send your order to Amiga Developer Support, Commodore Business Machines,
  409. 3470 Pharmacy Ave., Agincourt, Ontario M1W 3G3.  All orders to either 
  410. location must be prepaid with a cheque or money order.  European customers
  411. may contact Hirsch & Wolf oHG, Mittelstr. 33, 5450 Neuwied 1, Germany
  412. (tel ++49-2631-24485) for prices and availability.  All others can order from
  413. CATS in the U.S. at the address above, but include $15 for S&H intead of $3..
  414.  
  415.      Please note: The book is NOT a tutorial on ARexx!  It is meant for
  416. programmers wishing to add ARexx support to their products.  
  417.  
  418. ----------------------------------------------------------------------------
  419. C) Where do I get patches for my OS/2 REXX?
  420.  
  421.     If patches are necessary, IBM will make them available via anonymous
  422. FTP on software.watson.ibm.com.  The patches will also be made available
  423. on rexx.uwaterloo.ca (under /pub/os2rexx/ibm).  There is currently a patch 
  424. call REXX20.ZIP available which fixes some small problems.
  425.  
  426. ----------------------------------------------------------------------------
  427. D) Can I put up Presentation Manager windows and dialogs from OS/2 REXX?
  428.  
  429.     IBM has made available a simple "Visual REXX" system for OS/2 REXX.
  430. It's a function library that allows you to put up simple windows and
  431. some simple dialogs from any REXX program running in an OS/2 session.
  432. It is currently available for FTP from software.ibm.watson.com as the
  433. file /pub/os2/vrexx2.zip, and can also be found ftp-os2.nmsu.edu.
  434.  
  435.     Note that the term "Visual REXX" is used pretty loosely here.  As
  436. a package it is pretty skimpy when compared to Microsoft's Visual BASIC
  437. under Windows.  It's really more like the various UI libraries that
  438. are available for use with ARexx on the Amiga.
  439.  
  440. ----------------------------------------------------------------------------
  441. Questions/comments/suggestions about this FAQ should be sent to Eric Giguere,
  442. giguere@csg.uwaterloo.ca.
  443.  
  444. -- 
  445.  Eric Giguere                                    giguere@csg.UWaterloo.CA
  446.           So is Windows NT short for "Windows, NOT?"  
  447.