home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 24 DOS
/
24-DOS.zip
/
dosrx10b.zip
/
ABOUT.DOC
< prev
next >
Wrap
Text File
|
1993-03-11
|
15KB
|
327 lines
o o
____oo_
R E X X 1993 /|| |\
Ver. 1.0 BNV || |
for MSDOS MARMITA `.___.'
███████▓▓▓▓▓▓▓▒▒▒▒▒▒▒░░░░░░░ T Z A P A W A R E ░░░░░░░▒▒▒▒▒▒▒▓▓▓▓▓▓▓███████
Author.........Bill N. Vlachoudis
Address........Eirinis 4
TK555 35 Pilea
Thessaloniki Greece
Computer addr..cdaz0201@Grtheun1.EARN
vlachoudis@olymp.ccf.grtheun.gr [155.207.1.1]
bill@donoussa.physics.auth.gr [155.207.2.6]
Telephone......(31) 322-805
Date...........Mar-1993
About this REXX intrpreter
~~~~~~~~~~~~~~~~~~~~~~~~~~
I wrote this version of REXX because I though that it would be
nice to have my own REXX interpreter do use it with DOS, UNIX and
also as a macro language for my programs. This REXX interpreter is
all written in ANSI C, and I didn't try to make it fast but to as
much more flexible, with very little restrictions and also to be
compatible with IBM REXX from CMS.
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."
Syntactically, 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 its
capability for being used as a _macro language_ for arbitrary
applications. The idea here is that application developers don't
have to design their own macro languages and accompanying
interpreters. Instead they use REXX as the basis for that language
and support the REXX programming interface. When a REXX program
runs and comes across an expression or function that isn't part of
the base language definition, it can ask the application if it
knows how to handle it. The application only has to support
features that are specific to it, freeing the developer from
handling the mundane 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.
What is the reference book for REXX?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The "standard" reference for REXX is Mike Cowlishaw's _The REXX
Language: A Practical Approach To Programming_, currently in its
second edition. (The first edition had "REXX" in blue on the
cover, the second edition has it in red instead.) Mike's book is
often referred to as either "TRL" or "the red book". Until the
ANSI committee releases its standard, TRL is the document that
defines what REXX is. (See the bibliography below for details on
TRL.)
Information on ANSI and REXX
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The American National Standards Institute (ANSI) sets national
standards for various things in the United States, including
programming languages. The X3J18 REXX Standards Committee has been
established to defined a formal standard for the REXX language,
using TRL as its base document. The Committee meets 3 or 4 times a
year and holds ongoing discussions throughout the year. Members of
X3J18 mostly include REXX implementors and some users, but anyone
can participate. More information on X3J18 can be had from Brian
Marks (chair), marks@winvmd.vnet.ibm.com or Neil Milsted
(vice-chair), nfnm@wrkgrp.com.
Newsgroups and mailing lists
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On Usenet the group comp.lang.rexx exists for discussion of
REXX in all its variations. Currently the comp.lang.rexx newsgroup
is also gatewayed with the REXXLIST mailing list (i.e., anything
that gets posted to the newsgroup is sent to everyone on the
mailing list and anything that is sent to the mailing list gets
posted to the newsgroup).
Those without Usenet access will be interested primarily in the
various mailing lists available. The following information, kindly
provided by Scott Ophof, describes how to subscribe to the various
lists and what lists exist. Note that these mailing lists are
BITNET-based and Internet sites might have use the proper Internet
domain-based names (given at the end) instead of the BITNET node
names.
-- Subscribing to the list:
To receive postings from a list discussing REXX, send
e-mail to:
LISTSERV@some-node-address
with the following line as body:
SUBSCRIBE list-name Your-full-name
See list below for which "list-name" to use.
"Your-full-name" is your NAME, *not* your e-mail
address...
Example: If I wanted to read more about what is going
on with the REXX compiler for VM, I'd send e-mail to
LISTSERV@UCF1VM and insert as the first and only line:
SUBSCRIBE REXXCOMP F. Scott Ophof
North Americans may want to send their subscription
request to LISTSERV@uga.cc.uga.edu, Europeans might
want to send their request to LISTSERV@DEARN, those in
the Far East to LISTSERV@TWNMOE10, etc. The list
server you send your request to will automatically
forward that request to the server nearest you if
possible.
-- Receiving postings:
Once you've subscribed to the list, any mail sent to
the list will automatically be sent to you as well, at
the address you used to subscribe to the list. The
mail will come to you just like the rest of you email.
-- Posting to the list:
To post something to the list, use the email address
listed below under "List Address". You can also simply
just reply to a posting you've received in your mailbox
as is usually done (as long as it uses the "Reply-To:"
header line). Note that the list server will not
normally send you a copy of anything you post.
-- Mailing lists:
List Name List Address Discusses
AREXX-L AREXX-L@UCF1VM Amiga REXX
PC-REXX PC-REXX@UCF1VM Personal REXX
REXXCOMP REXXCOMP@UCF1VM REXX Compiler
TSO-REXX TSO-REXX@UCF1VM TSO REXX
UREXX-L UREXX-L@Liverpool.ac.uk Unix REXX
VM-REXX REXXLIST@HEARN VM/SP REXX
VM-REXX@MARIST "
VM-REXX@OHSTVMA "
VM-REXX@UCF1VM "
REXX-L REXX-L@UIUCVMD generic REXX
REXX-L@UALTAVM "
REXXLIST REXXLIST@DEARN "
REXXLIST@EB0UB011 "
REXXLIST@FINHUTC "
REXXLIST@OHSTVMA "
REXXLIST@POLYGRAF "
REXXLIST@TWNMOE10 "
REXXLIST@UCF1VM "
REXXLIST@UGA "
Note:
- The list-names "REXXLIST" and "REXX-L" refer to
the same discussion group, i.e.
non-implementation-specific REXX.
- Subscription requests and cancelling of
subscriptions *must* be sent to
<LISTSERV@that-node>, *not* to
<list-name@that-node>.
- With one exception, BITnet addresses have been
used here.` See the "Address Translation List"
for the Internet form of these addresses.
- Please save the item you will receive on
acceptance of your subscription detailing what
to send where; it also contains info on how to
cancel your subscription...
-- Address Translation List::
BITnet node Internet address
DEARN %DEARN.BITnet@nic.surfnet.nl
EB0UB011 @sic.ub.es
FINHUTC @finhutc.hut.fi
HEARN @nic.surfnet.nl
MARIST @VM.Marist.EDU
OHSTVMA @OHSTVMA.ACS.OHIO-STATE.EDU
POLYGRAF @graf.poly.edu
TWNMOE10 %TWNMOE10.BITnet@nic.surfnet.nl
UALTAVM @vm.ucs.ualberta.ca
UCF1VM @UCF1VM.CC.UCF.EDU
UGA @uga.cc.uga.edu
UIUCVMD %UIUCVMD.BITnet@uga.cc.uga.edu
Selected bibliography
~~~~~~~~~~~~~~~~~~~~~
This is from Mike Cowlishaw. Note that a VERY complete
bibliography can be found in _The REXX Handbook_. (Any updates to
the bibliography should be sent to Linda Suskind Green,
greenls@gdlvm7.vnet.ibm.com, who will pass them on to the
appropriate persons.)
Modern Programming Using REXX -- Robert P. O'Hara and David
R. Gomberg
In English: ISBN 0-13-597311-2 Prentice-Hall, 1985
ISBN 0-13-579329-5 (Second edition), 1988
The REXX Language -- M. F. Cowlishaw
In English: ISBN 0-13-780735-X Prentice-Hall, 1985
ISBN 0-13-780651-5 (Second edition), 1990
In German: ISBN 3-446-15195-8 Carl Hanser Verlag, 1988
ISBN 0-13-780784-8 P-H International, 1988
In Japanese: ISBN 4-7649-0136-6 Kindai-kagaku-sha, 1988
REXX In the TSO Environment -- Gabriel F. Gargiulo
ISBN 0-89435-354-3, QED Information Systems Inc.,
Order #CC3543; 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, 424pp+diskette, Abacus, 1991
The REXX Handbook -- Edited by Gabe Goldberg and Phil Smith III
ISBN 0-07-023682-8, 672pp, McGraw Hill, 1991
Amiga Programmer's Guide to ARexx -- Eric Giguere
Commodore-Amiga, Inc., 1991
Programming in REXX -- Charles Daney
ISBN 0-07-015305-1, 300pp, McGraw Hill, 1992
Command Language Cookbook for Mainframes, Minicomputers,
and PCs: DOS/OS/2, Batch Language, CLIST, DCL, Perl, REXX
-- Hallett German
Van Nostrand Reinhold, 1992
ISBN 0-442-00801-5, 366 pages, paperback, $49.95
Note that IBM also publishes a whole slew of REXX-related
documents, sometimes referring to REXX as the "SAA Procedures
Language". One of these documents is the SAA CPI Procedures
Language Level 2 Reference, SC24-5549.
Note.
~~~~~
The previous paragraphs, (from "What is REXX?" till here ) are
adapted from Eric Giguere <giguere@CSG.UWATERLOO.CA> mail with
subject "REXX Frequently Asked Questions" in the "General REXX
Discussion List" at REXXLIST@DEARN.BITNET.
The special features of REXX interpreter are:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o All rexx commands and functions have easy and very simple
names.
o Rexx variables are not distiquish in strings, integer, reals
and any other kind of variables. All variables are handled as
strings and only in arithmetic operations variables must
evaluate to a acceptable number.
ie. ' -2' + 3 will evaluate to '1'
left(21+6,1) will return '2'
left('amo',1) will return 'a'
o There is no need to declare any variable,function before you
use it All variables are evaluate to their name, the first
time they used.
o There is no any limitation in the size of each variable (or
array) except the convential memory (and in DOS 1 segment 64k,
for each variable).
o When rexx intrepreter doesn't understand one command it pass
it to the operating system (default) to execute it, or to any
other program you want.
o Rexx has a large library with lot of string handling
functions.
o A very powerful PARSE command, where you can parse a string
(from several sources) according to a template in anything you
like.
This rexx interpreter has also:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o A mathematic library with all the scientific functions,
sin,cos...
o The ability to create new libraries for rexx programs
o Very flexible routines for file I/O
o It has its own stack that make very easy the communication
with the operating system.
o Any program that uses the standard input/output can be used as
rexx function.
ie a = 'cd'() /* returns the current directory, by calling CD
command of DOS */
DISCLAIMER
~~~~~~~~~~
THE SOFTWARE REFERENCED IS MADE AVAILABLE AS - IS. THE AUTHOR
MAKES NO WARRANTY ABOUT THE SOFTWARE AND ITS CONFORMITY TO ANY
APPLICATION. THE AUTHOR IS NOT RESPONSIBLE FOR ANY DAMAGE, LOSS OF
DATA, OR LOSS OF MONEY CAUSED BY THIS PROGRAM.