[comp.lang.rexx] REXX: What is it?

kushmer@bnlux0.bnl.gov (christopher kushmerick) (12/06/89)

Could someone please mail me a description of rexx?
-Thanks in advance, -Chris

haroldt@yunexus.yorku.ca (Harold Tomlinson) (12/06/89)

Just how detailed do you want it to be?

 Rexx (alias rexx-exec) is a version of exec for the IBM.  It is really a
great language and can now be compiled into load modules.

  The PC equivilant would be a .bat file.  
  The Unix  "       would be a shell script.
  etc.

--
                       Harold Tomlinson
                       Computing Advisor
                       Academic Computing Services
                       York University
                       4700 Keele St., North York (Toronto)
                       Ontario, Canada.  M3J 1P3


==========================================================================
I don't believe in being partial.  I abuse everyone equally.
==========================================================================
                           _________
                |      |       |    
                |      |       |
                |------|       |           haroldt@orion.yorku.ca
                |      |       |           haroldt@vm1.yorku.ca
                |      | o     | o         haroldt@nexus.yorku.ca
==========================================================================

pgl@cup.portal.com (Peter G Ludemann) (12/11/89)

Harold Tomlinson says:

  The PC equivilant would be a .bat file.  
  The Unix  "       would be a shell script.
  etc.

This doesn't come close.  

REXX is more like Unix shell + awk + usability + system-integration. 
It is very powerful, yet easy for beginners.  There also exists a
wide spectrum of tools which use REXX, such as PIPELINEs and XEDIT
on CMS (it's too new on OS/2 to have built up such a rich repetoire).

REXX is available on CMS, MVS, OS/2 and possibly others.  There is
also a compiler for CMS.

- peter ludemann		--- my opinions are my own responsibilty ---

davewt@NCoast.ORG (David Wright) (12/11/89)

	Actually, Rexx is much more than a scripting language. .BAT files
in MS-Dos are worthless compared to a real script language like Unix/Xenix
Sh/Csh/Ksh shells, and even those are very limited compared to Rexx. Rexx
allows programs to talk directly to each other, and pass along information
that the other program might need to run. This is MUCH different than a
simple input/output redirection or pipe, as it can go both ways, and can exist
for the life of the 2 programs. One of the better examples would be having
a database that could take a phone number from a record, send it to the
communications package of your choice, have the comm package dial the
correct system, download a list of files generated by another program,
with all the programs running at the same time.

akcs.dfrancis@tronsbox.UUCP (Dennis Francis Heffernan) (12/11/89)

     rexx is also available for PC's- in the MS-DOS world as (I belive)
Personal Rexx, and for Amigas as ARexx.  Don't know what you would DO with
it on a MS-DOS clone, seeing as how they generally don't multitask, but I
assume you must be able to do something with it if someone thought it was
worth putting out.

brooking@mcnc.org (Jim Brooking) (12/12/89)

In article <[25835d33:21.3]comp.lang.rexx;1@tronsbox.UUCP>, akcs.dfrancis@tronsbox.UUCP (Dennis Francis Heffernan) writes:
> 
>      rexx is also available for PC's- in the MS-DOS world as (I belive)
> Personal Rexx, and for Amigas as ARexx.  Don't know what you would DO with
> it on a MS-DOS clone, seeing as how they generally don't multitask, but I
> assume you must be able to do something with it if someone thought it was
> worth putting out.

I can't resist saying that REXX is, in fact a full-featured programming
language complete with variables, arrays, ALL known control structures
(if...then...else, do on an index, do while, do until, select (like c's
case)), procedures, and about everything else one needs to write
programs. It doesn't have a math library (tho hooks are available
to link to existing libraries), but it does have an extensive library
of character manipulating functions and a powerful string parsing
statement. So it is a programming language. And it does NOT have
mandatory declaration statements. A variable's type is determined by its
usage. 

PLUS: when the REXX interpreter encounters a statement it doesn't
recognize, it passes it out to the "environment" from which the
REXX program was invoked, either the operating system, or (in case
of CMS and Personal REXX) the editor (XEDIT in CMS or KEDIT in DOSland).
Other environments probably exist, but I've been out of the IBM
mainframe world for a while and recall only a VM PASSTHRU environment
(implemented by the U. of Maine). I heard a GDDM REXX environment
was planned, but have no experience with it.

Why use REXX? It's so easy to write programs it's almost embarrassing.
There's a nice debugger built in, and the language is VERY rich. The
result is that you can usually finish writing your REXX program while
the PASCAL programmer is still coding declarations. (This is from a personal
experience!). The last time "what good it it?" arose in this newsgroup
someone commented that he'd written a complete version of the unix
"make" command in a afternoon, in around 1,000 statements. Try that
in C, PASCAL or FORTRAN sometime!

Hear tell someone is working on a REXX implementation for unix.
After recently writing my first shell script of any substance,
I can't wait for REXX. I predict REXX will be the language of
choice for most programmers by 1995. It does need widely available
math libraries, and it unfortunately needs to shuck its IBM mainframe
stigma. But it's a dynamite language. Try it!!

					Jim Brooking
					N.C. Supercomputing Center

maclean@bcarh186.bnr.ca (Mark Maclean) (12/12/89)

In article <24886@cup.portal.com> pgl@cup.portal.com (Peter G Ludemann) writes:
>Harold Tomlinson says:
>
>REXX is available on CMS, MVS, OS/2 and possibly others.  There is
>also a compiler for CMS.
>

Does anyone know of a version for UNIX?


- The above are not the opinions of my species, my country, or my employer.
  If you disagree with them then they are not your opinions either!

schwartz@psuvax1.cs.psu.edu (Scott Schwartz) (12/13/89)

In article <5888@alvin.mcnc.org> brooking@mcnc.org (Jim Brooking) writes:
>I can't resist saying that REXX is, in fact a full-featured programming
>language complete with variables, arrays, ALL known control structures

Not really...  It doesn't have continuations (like Scheme or
Self), nor does it have coroutines (like the unix shell languages!).

-- 
Scott Schwartz		<schwartz@shire.cs.psu.edu>
"More mips; cheaper mips; never too many." -- John Mashey

davewt@NCoast.ORG (David Wright) (12/13/89)

In article <1989Dec12.160943.16118@psuvax1.cs.psu.edu> schwartz@psuvax1.cs.psu.edu (Scott Schwartz) writes:
>Not really...  It doesn't have continuations (like Scheme or
>Self), nor does it have coroutines (like the unix shell languages!).

	That's not quite true. If something can be done in other languages,
it can be done in Rexx by simply writing a function in another language
that CAN do it! If you want a random number generator, you could write it
in C. If you want a windowing system or pop-up file requester, do it in
some other language. That's the great thing about Rexx. The language is as
extensible as you want to make it.

			Dave

mks@cbmvax.UUCP (Michael Sinz - CATS) (12/13/89)

In article <5888@alvin.mcnc.org> brooking@mcnc.org (Jim Brooking) writes:
>In article <[25835d33:21.3]comp.lang.rexx;1@tronsbox.UUCP>, akcs.dfrancis@tronsbox.UUCP (Dennis Francis Heffernan) writes:
>> 
>>      rexx is also available for PC's- in the MS-DOS world as (I belive)
>> Personal Rexx, and for Amigas as ARexx.  Don't know what you would DO with
>> it on a MS-DOS clone, seeing as how they generally don't multitask, but I
>> assume you must be able to do something with it if someone thought it was
>> worth putting out.
>
>I can't resist saying that REXX is, in fact a full-featured programming
>language complete with variables, arrays, ALL known control structures
>(if...then...else, do on an index, do while, do until, select (like c's
>case)), procedures, and about everything else one needs to write
>programs. It doesn't have a math library (tho hooks are available
>to link to existing libraries), but it does have an extensive library
>of character manipulating functions and a powerful string parsing
>statement. So it is a programming language. And it does NOT have
>mandatory declaration statements. A variable's type is determined by its
>usage. 
>
>PLUS: when the REXX interpreter encounters a statement it doesn't
>recognize, it passes it out to the "environment" from which the
>REXX program was invoked, either the operating system, or (in case
>of CMS and Personal REXX) the editor (XEDIT in CMS or KEDIT in DOSland).
>Other environments probably exist, but I've been out of the IBM
>mainframe world for a while and recall only a VM PASSTHRU environment
>(implemented by the U. of Maine). I heard a GDDM REXX environment
>was planned, but have no experience with it.

And, on the Amiga, many aplications rangeing from editors to database
apps to spreadsheets to compilers to etc.  And, in enviroments such
as the Amiga (and UNIX) it can communicate with multiple applications.
(At the same time...)  Plus it is REXX...

>
>Why use REXX? It's so easy to write programs it's almost embarrassing.
>There's a nice debugger built in, and the language is VERY rich. The
>result is that you can usually finish writing your REXX program while
>the PASCAL programmer is still coding declarations. (This is from a personal
>experience!). The last time "what good it it?" arose in this newsgroup
>someone commented that he'd written a complete version of the unix
>"make" command in a afternoon, in around 1,000 statements. Try that
>in C, PASCAL or FORTRAN sometime!
>
>Hear tell someone is working on a REXX implementation for unix.
>After recently writing my first shell script of any substance,
>I can't wait for REXX. I predict REXX will be the language of
>choice for most programmers by 1995. It does need widely available
>math libraries, and it unfortunately needs to shuck its IBM mainframe
>stigma. But it's a dynamite language. Try it!!
>
>					Jim Brooking
>					N.C. Supercomputing Center


/----------------------------------------------------------------------\
|      /// Michael Sinz -- CATS/Amiga Software Engineer                |
|     ///  PHONE 215-431-9422  UUCP ( uunet | rutgers ) !cbmvax!mks    |
|    ///                                                               |
|\\\///          When people are free to do as they please,            |
| \XX/                they usually imitate each other.                 |
\----------------------------------------------------------------------/

schwartz@psuvax1.cs.psu.edu (Scott Schwartz) (12/13/89)

In reply to someone claiming REXX supported all known 
control structures, I wrote:
>>Not really...  It doesn't have continuations (like Scheme or
>>Self), nor does it have coroutines (like the unix shell languages!).

David Wright writes:
>	That's not quite true. If something can be done in other languages,
>it can be done in Rexx by simply writing a function in another language
>that CAN do it! If you want a random number generator, you could write it
>in C. If you want a windowing system or pop-up file requester, do it in
>some other language. That's the great thing about Rexx. The language is as
>extensible as you want to make it.

I disagree.... while you could write a simulator for Scheme or /bin/sh
in REXX, it's not the same as being able to do certain operations
directly in a REXX program.  Certainly the things I mentioned are
nothing like external routines written in other languages; they require
features REXX simply has no conception of.

Anyway, let's not get carried away with this.  REXX is a fine language;
not supporting every known control structure is nothing to be ashamed
of!

-- 
Scott Schwartz		<schwartz@shire.cs.psu.edu>
"More mips; cheaper mips; never too many." -- John Mashey

bdb@becker.UUCP (Bruce Becker) (12/14/89)

In article <1605@bnr-rsc.UUCP> bnr-rsc!bcarh186!maclean () writes:
|In article <24886@cup.portal.com> pgl@cup.portal.com (Peter G Ludemann) writes:
|>Harold Tomlinson says:
|>
|>REXX is available on CMS, MVS, OS/2 and possibly others.  There is
|>also a compiler for CMS.

	The Commodore Amiga has an excellent version
	called ARexx. It was so useful that Commodore
	decided to integrate it directly into the next
	release of the operating system. This is a big
	win due to the multi-tasking message-passing
	structure of the o/s, so ARexx is a real natural
	way to make that stuff available in a command
	language.

|Does anyone know of a version for UNIX?

	As far as I know the author of ARexx is working
	on a UNIX version for Amix, the System V r4.0
	port to the Amiga 2500 (nice system - 25MHz 68030
	+ 68882. The UNIX port is in alpha test already)...

Cheers,
-- 
   ^^ 	 Bruce Becker	Toronto, Ont.
w \**/	 Internet: bdb@becker.UUCP, bruce@gpu.utcs.toronto.edu
 `/v/-e	 BitNet:   BECKER@HUMBER.BITNET
_/  >_	 "The Rounder I Go, the Faster I Get" - Tenderfeed for QuodUseNet

davewt@NCoast.ORG (David Wright) (12/14/89)

In article <1989Dec12.235944.7970@psuvax1.cs.psu.edu> schwartz@psuvax1.cs.psu.edu (Scott Schwartz) writes:
>In reply to someone claiming REXX supported all known 
>control structures, I wrote:
>>>Not really...  It doesn't have continuations (like Scheme or
>
>I disagree.... while you could write a simulator for Scheme or /bin/sh
>in REXX, it's not the same as being able to do certain operations
>directly in a REXX program.  Certainly the things I mentioned are
>nothing like external routines written in other languages; they require
>features REXX simply has no conception of.
>
>Anyway, let's not get carried away with this.  REXX is a fine language;
>not supporting every known control structure is nothing to be ashamed
>of!

	You obviously have never really USED Rexx, or any other extensible
language. Your argument that because it doesn't do something "out of the
box", Rexx must be lacking something is completely wrong.
	As any FORTH programmer can tell you, what comes out of the
box is just the beginning. The only limits to ANY language are the real,
factual, limitations of the implementation.
	Now if Rexx did not really support the writing of modules in other
languages, and these additions were just "patch jobs", you would be at least
half right. But in many implementations of Rexx (and I suspect all), the
commands are NOT resident in one piece, but consists of a combinations of
other Rexx macros AND some executable data. What is this executable data
written in? Usually C or some other language.
	Adding in new sub-modules to Rexx is part of working with it.
Unlike shell scripts, where the output of other programs is pretty limited
in how it may be returned to the shell script, Rexx programs can INTERACTIVELY
exhange data with other Rexx programs or completely different programs which
have Rexx "ports" for communication (similar to BSD named pipes).
	This is not outside the normal way of interacting with Rexx, and
many Rexx programmers (myself included) gradually build up a small
library of functions that we use when building new Rexx applications.
	To judge modern or by definition extensible langues such as
Rexx or FORTH with the same standards used for more limited languages such
as BASIC, Fortran, or COBOL is like comparing apples and oranges. The
whole underlying philosophy of the structure of the language is different,
and requires a different mind-set to work with it.

akcs.dfrancis@tronsbox.UUCP (Dennis Francis Heffernan) (12/14/89)

     Didn't mean to imply that I thought rexx was useless outside of a 
multitasking environment; just that as an interpreted language I don't think
it really substitutes for something like Pascal or C.  I USE it as a sub for
those languages, but mainly because my poor beleagured Amy (1 meg, three
floppies) can't really handle anything meaty like Lattice C.  (Neither can my
brain, at this point...)

davida@umd5.umd.edu (David Arnold) (12/15/89)

In article <1989Dec12.160943.16118@psuvax1.cs.psu.edu> schwartz@psuvax1.cs.psu.edu (Scott Schwartz) writes:
>In article <5888@alvin.mcnc.org> brooking@mcnc.org (Jim Brooking) writes:
>>I can't resist saying that REXX is, in fact a full-featured programming
>>language complete with variables, arrays, ALL known control structures
>
>Not really...  It doesn't have continuations (like Scheme or
>Self), ...

Hey, I don't know about Scheme or Self, but if you're talking about line
continuations, REXX does have that.  Just put a comma at the end of the
line and continue on the next line.  What could be simpler?

If you are referring to some other kind of 'continuation', then I'm not
familiar with that usage.

David Arnold  

Internet: davida@umd5.umd.edu
Bitnet: davida@umdd
UUCP: uunet!cvl!umd5.umd.edu!davida

MJB@cup.portal.com (Martin J Brown-Jr) (12/15/89)

IMHO, the important thing to realize in AREXX (REXX?) is that you don't just
pipe data , but you can actually send COMMANDS to a program via an AREXX
port (provided, of course, the developer allows it). Since the dos shell I
run on my amiga (WShell) has an arexx port, I can command arexx'd programs,
with their own commands, from the shell command line. These programs need
only be running, their windows/screens do not need to be activated for them
to receive and act on these commands. This can be an interactive process,
not just a pre-planned script.

All we need now, is an AREXX'd neural-net.   <----- current soapbox  :->

                                  - MJB -

jac@muslix.llnl.gov (James Crotinger) (12/16/89)

In article <1989Dec13.222001.10720@NCoast.ORG> davewt@NCoast.ORG writes:
>
>       You obviously have never really USED Rexx, or any other extensible
>language. Your argument that because it doesn't do something "out of the
>box", Rexx must be lacking something is completely wrong.
>.....
>       To judge modern or by definition extensible langues such as
>Rexx or FORTH with the same standards used for more limited languages such
>as BASIC, Fortran, or COBOL is like comparing apples and oranges. The
>whole underlying philosophy of the structure of the language is different,
>and requires a different mind-set to work with it.

  I think there's a bit of confusion on what is meant here by "extensible".
REXX (ARexx at least) is indeed very extensible in that you can write your
own REXX function hosts and function libraries that essentially add new
functions to the REXX language.

  However you cannot extend the syntax of REXX. This is what would be
required to add continuations. (REXX's dynamical scoping does allow
you to do some strange things but it has its limits). In this sense
I don't see how REXX is much different from other procedural languages.
Certainly its lack of datatypes makes it much too low level a language
to do most types of programming in (IMHO). 

  Don't get me wrong---I'm a big fan or REXX. It's very easy to write
and debug simple programs. Its interprocess communications abilities
coupled with the widespread support in commercial applications on the
Amiga have made AREXX an extremely important part of a productive
Amiga environment.

  Jim

peter@ficc.uu.net (Peter da Silva) (12/16/89)

In article <25873536:21.9comp.lang.rexx;1@tronsbox.UUCP> akcs.dfrancis@tronsbox.UUCP (Dennis Francis Heffernan) writes:
> those languages, but mainly because my poor beleagured Amy (1 meg, three
> floppies) can't really handle anything meaty like Lattice C.

Well then use Manx. I've done most of my development on an Amiga with 512K
and 2 floppies. Manx is quite usable in that environment.
-- 
`-_-' Peter da Silva. +1 713 274 5180. <peter@ficc.uu.net>.
 'U`  Also <peter@ficc.lonestar.org> or <peter@sugar.lonestar.org>.
"It was just dumb luck that Unix managed to break through the Stupidity Barrier
and become popular in spite of its inherent elegance." -- gavin@krypton.sgi.com

mwm@raven.pa.dec.com (Mike (With friends like these, who needs hallucinations) Meyer) (12/16/89)

>> 	You obviously have never really USED Rexx, or any other extensible
>> language. Your argument that because it doesn't do something "out of the
>> box", Rexx must be lacking something is completely wrong.
>> 	As any FORTH programmer can tell you, what comes out of the
>> box is just the beginning. The only limits to ANY language are the real,
>> factual, limitations of the implementation.

Either there's something really spiffy I'm missing in REXX (that would
be nice), or you've not really used FORTH or LISP (my personal
favorite) or any other extensible language.

What both of those have that I can't find in REXX is the ability to
create new control structures. REXX let's me add all kinds of new
functions, and neat new commands, and so on. But I can't add something
like the C switch statment. In LISP (and I assume FORTH, but couldn't do
it myself) I can do things like that.

	<mike
--
--
When all our dreams lay deformed and dead		Mike Meyer
We'll be two radioactive dancers			mwm@berkeley.edu
Spinning in different directions			ucbvax!mwm
And my love for you will be reduced to powder		mwm@ucbjade.BITNET

pgl@cup.portal.com (Peter G Ludemann) (12/16/89)

If you want pipes with REXX (coroutining, etc.), there is a
package available on CMS called (surprise!) PIPELINES.  It
is much more powerful than Unix pipes (pipes can be named,
can split and join, etc.).

- peter ludemann	--- my opinions are my own responsibility ---

terry@uts.amdahl.com (Lewis T. Flynn) (12/19/89)

In article <41652@lll-winken.LLNL.GOV> jac@muslix.llnl.gov (James Crotinger) writes:
>
>  However you cannot extend the syntax of REXX. This is what would be
>required to add continuations.

Continuations are in the original REXX definition, perhaps the implementor
of AREXX left them out (or perhaps I don't understand the discussion). At any
rate, on page 19 of "The REXX Language" (by M.F. Cowlishaw) it says that REXX
will assume a semicolon at the end of a line unless 1) the line ends in an
unterminated comment, or 2) the last non comment token was a comma in which
case, the comma is replaced by a blank and the line is continued.

Pardon me if this has been answered, but I've been away and am just catching
up.

Terry

terry@uts.amdahl.com (Lewis T. Flynn) (12/19/89)

In article <ba2y02PR75Bo01@amdahl.uts.amdahl.com> I wrote:
>of AREXX left them out (or perhaps I don't understand the discussion).

Later reading says I sure didn't understand, sorry.

Terry