mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-04 22:33:27 +00:00
65 lines
2.3 KiB
Plaintext
65 lines
2.3 KiB
Plaintext
|
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.
|
||
|
|
||
|
|
||
|
Differences between TRL (The REXX Language) and REXX/imc
|
||
|
========================================================
|
||
|
|
||
|
The following are all nonstandard features of REXX-imc
|
||
|
|
||
|
* Rejection of labels ending with dot (in case of confusion between
|
||
|
function.(args) and stem.(tail))
|
||
|
* Compound variable accesses of the form "stem.'string constant'" and
|
||
|
stem.(expression)
|
||
|
* Acceptance of any non-zero number for logical truth, rather than just 1
|
||
|
* "SAYN expression" to output lines without carriage return
|
||
|
* "SELECT expression" to switch on a value
|
||
|
* "END SELECT"
|
||
|
* "PARSE VALUE" with multiple strings separated by commas
|
||
|
* "PROCEDURE HIDE"
|
||
|
* The following functions: chdir getcwd getenv putenv system userid
|
||
|
plus these I/O functions: open close fdopen popen pclose fileno ftell
|
||
|
* error messages 80-210, -1 and -3.
|
||
|
|
||
|
|
||
|
Good sources of REXX information on the web:
|
||
|
============================================
|
||
|
|
||
|
REXX/imc Home page
|
||
|
http://www.comlab.ox.ac.uk/oucl/users/ian.collier/Rexx/index.html
|
||
|
|
||
|
IBM's REXX Language Page
|
||
|
http://rexx.hursley.ibm.com/rexx/
|
||
|
|
||
|
REXX Tutorials Page
|
||
|
http://www2.hursley.ibm.com/rexxtut/
|