Directories | Web | Images | Groups | News | Shopping | Local

Enter your search keyword(s):

 



(formerly Encyclopedic directory)
Mailing Lists
Home / Top / Computers / Programming / Languages / Rexx / Mailing Lists
Related articles

Edit | Discuss Article

REXX

REXX (Restructured Extended Executor) is a programming language which was developed at IBM. It is a structured high-level programming language which was designed to be both easy to learn and easy to read. Both commercial and open source Interpreters for REXX are available on a wide range of computing platforms, and compilers are available for IBM mainframes.

Table of contents
1 Features
2 History
3 Syntax
4 Under OS/2
5 Spelling
6 External links

Features

REXX has the following characteristics and features:

REXX has just twenty-three, largely self-evident, instructions (e.g., call, parse, and select) with minimal punctuation and formatting requirements. It is essentially a free-form language with only one data-type, the character string; this philosophy means that all data are visible (symbolic) and debugging and tracing are simplified.

REXX syntax looks similar to PL/I, but has fewer notations; this makes it harder to parse (by program) but easier to use.

History

REXX was designed and first implemented as an ‘own-time’ project between 1979 and 1982 by Mike Cowlishaw of IBM, originally as a scripting programming language to replace the languages EXEC and EXEC 2. It was designed to be a macro or scripting language for any system. As such, REXX is considered a precursor to Tcl and Python.

It was first described in public at the SHARE 56 conference in Houston, Texas, in 1981, where customer reaction, championed by Ted Johnston of SLAC, led to it being shipped as an IBM product in 1982.

Over the years IBM included REXX in almost all of its operating systems (VM/CMS, VM/GCS, MVS TSO/E, AS/400, OS/2, VSE/ESA, AIX, CICS/ESA, and PC-DOS), and has made versions available for Novell Netware, Windows, Java, and Linux.

The first non-IBM version was written for PC-DOS by Charles Daney in 1984/5. Other versions have also been developed for Atari, Amiga, Unix (many variants), Solaris, DEC, Windows, WinCE, PocketPC, MS-DOS, Palm OS, QNX, OS/2, Linux, BeOS, EPOC32, AtheOS, OpenVMS, OpenEdition, Macintosh, and MacOS X.

Several freeware versions are available. REXX/imc and Regina are the most widely-used open-source ports to Windows and Linux. BREXX is well-known for WinCE and PocketPC platforms.

In 1996 ANSI published a standard for REXX: ANSI X3.274-1996 “Information Technology – Programming Language REXX”. More than two dozen books on REXX have been published since 1985.

In the last decade, two newer variants of REXX have appeared:

  • NetRexx - which compiles to Java byte-code via Java source code; this has no reserved keywords at all, and uses the Java object model, and is therefore not upwards-compatible with ‘classic’ REXX
  • ObjectRexx - which is an object-oriented upwards-compatible version of REXX.

In 1990, Cathy Dager of SLAC organized the first independent REXX symposium, which led to the forming of the REXX Language Association. Symposiums are held annually.

Rexx marked its 25th anniversary on 20 March 2004, which was celebrated at the REXX Language Association]’s 15th International REXX Symposium in Böblingen, Germany, in May 2004.

Syntax

Looping

The DO control structure always begins with a DO and ends with an END.

DO UNTIL:

   do until [condition]
   [instructions]
   end

DO WHILE:

   do while [condition is true]
   [instructions]
   end

Stepping through a variable:

   do i = x to y by z
   [instructions]
   end

Looping forever until exiting with LEAVE:

   do forever
     if [condition] then leave
   end

Looping a fixed number of times

   do i = x to y by z for a
   [instructions]
   end

Conditionals

Testing conditions with IF

   if [condition] then
     do
     [instructions]
     end
   else
     do
     [instructions]
     end

For single instructions, DO and END can also be omitted:

   if [condition] then
     [instruction]
   else
     [instruction]

Testing for multiple conditions

SELECT is REXX’s CASE structure

   select
     when [condition] then
     do
     [instruction]
     end
   otherwise
     do
     [instruction] or NOP
     end

NOP indicates no instruction is to be executed.

PARSE

The PARSE instruction is particularly powerful; it combines some useful string-handling functions. Its syntax is:

   parse [upper] origin template

where origin specifies the source:

and template can be:
  • list of variables
  • column number delimiters
  • literal delimiters

upper is optional; it you specify it, data will be converted to upper case.

Examples:

Using a list of variables as template

   myVar = "John Smith"
   parse var MyVar firstName lastName
   say "First name is:" firstName
   say "Last name is:"  lastName

displays the following

   First name is: John
   Last name is: Smith

Using a delimiter as template:

   myVar = "Smith, John"
   parse var MyVar LastName "," FirstName
   say "First name is:" firstName
   say "Last name is:"  lastName

also displays the following

   First name is: John
   Last name is: Smith

Using column number delimiters:

   myVar = "(202) 123-1234"
   parse var MyVar 2 AreaCode 5  7 SubNumber
   say "Area code is:" AreaCode
   say "Subscriber number is:" SubNumber

displays the following

   Area code is: 202
   Subscriber number is: 123-1234

A template can use a combination of variables, literal delimiters, and column number delimiters.

Under OS/2

REXX is included in the base operating system of OS/2, and is also used as the macro language in many applications. Under OS/2, a REXX program begins with matched comment delimiters, /* */, to indicate to the operating system that it is a REXX program:

   /* sample.cmd */
   say "Hello World"

Instructions between quotes are passed to the OS:

   /* sample.cmd */
   'dir /p /w'

Spelling

In plain text, Cowlishaw seems to prefer Rexx, whereas IBM documents and the majority of the web uses REXX. The ANSI standard uses the form preferred by the standardization committee, which has small capitals for the final three letters: REXX.

External links

redirect


Source | Copyright
Webmasters: Add your website here:

Readers: Edit | Discuss Listings

REXXLIST
REXX programming discussion list, archives and subscription.
http://listserv.uga.edu/archives/rexxlist.html

Yahoo! Groups: ARexx
Here ARexx (Amiga Rexx) coders can share ideas, routines and help.
http://groups.yahoo.com/group/arexx/

TSO-REXX
TSO Rexx discussion list, archives and subscription.
http://vm.marist.edu/htbin/wlvindex?TSO-REXX

VM-REXX
VM/SP Rexx discussion list, archives and subscription.
http://vm.marist.edu/htbin/wlvindex?VM-REXX

Rexxlist
Alternate hosting of REXXLIST, at Yahoo! Groups.
http://groups.yahoo.com/group/rexxlist/



Help build the largest human-edited directory on the web.
 Submit a Site - Open Directory Project (modified) - Become an Editor

Modified contents copyright 2008. All rights reserved.