[comp.lang.rexx] Brief on REXX for Amiga

vkr@osupyr.mps.ohio-state.edu (Vidhyanath K. Rao) (06/06/89)

In article <271@dftsrv.gsfc.nasa.gov>
	 merritt@iris613.gsfc.nasa.gov (John H Merritt) writes:
*********Description of REXX on IBM/VM systems***************
>  .....
>REXX programs normally have a filetype of EXEC; such files may contain
>CP and CMS commands.  Similarly, REXX programs with a filetype of
>XEDIT may contain XEDIT subcommands.
>What does all this mean?
>  ....
>REXX is a high-level programming language similiar to the various shells
>found in UNIX.  The interpreter works in, essentially, two steps:
>	1. Is the statement a REXX instruction?
>	2. If not, pass the string on to CMS (which can pass it onto CP,
>	   if necessary,) or XEDIT, or ISPF depending on which environment
>	   you currently have loaded. On Unix this environment, I guess, 
>	   would be your favorite shell.

ARexx [an implementation of REXX on the Amiga] does a little bit more,
and this I find very useful: But, first, I should point out that 
different tasks in the Amiga talk to each other by passing messages,
rather than thru pipes (or such) arranged by the shell (though that too
can be done).

Each ARexx script starts a new task. If a command is not a REXX instruction,
it is passed on to the task that invoked the script (that need not always
be the case, though it usually is). But, the script may specifically send
the string to a designated task, provided that this task exists, and is
willing to accept such commands from the outside.

One thing that this allows is user mediation or manipulation of data
in transit. This can be done is a language simpler than C, without
having to become a systems programmer. I am not sure if System V
message passing can be meddled with in the same way.

An example of what I mean: AmigaTeX will tell the line no and the column
no of the error at which it is stopped, say l and c. To make MicroEmacs
go to this point, you go to the top of the buffer, goto-next-line l-1
times and go-right c-1 times. [and take care of boundary conditions].
Corrections of this type can easily be done with ARexx.

What that means is that when two applications send information in slightly
incompatible formats, you don't have to sweettalk the developer, or
get the source code. Remember that in the micro world, *nobody* will give
the source code to commercial programs.

> ....
>Merging REXX and a Unix shell would produce and extremely powerful
>user programming environment.


If you want to have an idea of how good that can be, you may want to
look at ARexx+WShell set up on an Amiga.
-- 
It is the man, not the method, that               Nath
solves the problem.                     vkr@osupyr.mast.ohio-state.edu
	-Poincare.                             (614)-366-9341