~ Office Supplies ~~ Buy Posters ~~ A-Z Products ~~ Website Advertising


REXX - Wikipedia

<<Up     Contents

REXX

Redirected from REXX programming language

The REXX (Restructured Extended Executor) programming language was designed and implemented between 1979 and 1982 by Mike Cowlishaw of IBM. It is a modern, structured, high-level programming language that was designed to be both easy to learn and easy to read. This was achieved by implementing the following characteristics and features:

REXX has just twenty-three, largely self-evident keywords (ie, CALL, PARSE, SELECT) and minimial punctuation requirements. It is essentially a free-form language with only one data-type, the character string; users never have to worry about data conversion.

REXX looks a lot like PL/1[?].

Table of contents showTocToggle("show","hide")

History

Originally a scripting language developed at IBM. REXX was the successor to the script languages EXEC and EXEC 2. It was also designed to be a macro or scripting language for any system. As such, it is a precursor to TCL[?] and Python.

Over the years IBM developed versions for many of its operating systems: VM/CMS, OS/2, PC-DOS, MVS/TSO, AS/400, and AIX. Non-IBM versions have also been developed for Atari, Unix, DEC, Windows, and MS-DOS. Later versions of the Amiga OS included a version of REXX called AREXX.

Several freeware versions are available. REXX/IMC and Regina are the most widely-used open-source ports to Windows and Linux.

In 1996 ANSI published a standard for REXX: ANSI X3.274-1996 "Information Technology - Programming Language REXX"

In recent years, two newer variants of REXX have appeared:


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:

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 delineaters, /* */, to indicate to the OS 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

Cowlishaw seems to prefer Rexx, whereas IBM sales, ANSI, and the majority of the web uses REXX.


External Links

wikipedia.org dumped 2003-03-17 with terodump




 
 
59 ct blue gray AGATE Quartz half polished gem cabbing cabochon rough gemstone slab 11 g lapidary 26
 59 ct blue gray AGATE Quartz half polished cabbing cabochon slab 11 g lapidary 26 
 
37 carats Golden Yellow COBAL pre AMBER cabbing lapidary raw uncut rough gemstone 7 grams Lovely lot
 37 carats Golden Yellow COBAL pre AMBER cabbing lapidary raw uncut 7 grams Lovely lot 
 
10 carats Amethyst Quartz gem stones Polished rectangle blocks Cabbing cab cabochon rough gemstones
 10 carats Amethyst Quartz Polished rectangle blocks Cabbing cab cabochon  
 
75 carats rough tumble polished MOZAMBIQUE Garnet jewelery designer accent gemstone jewel parcel lot
 75 carats tumble polished MOZAMBIQUE Garnet jewelery designer accent jewel parcel lot 
 
56 carat Fluorescent Purple FLUORITE Jewelry designer wirewrap tumbled rough gemstone piece 11 grams
 56 carat Fluorescent Purple FLUORITE Jewelry designer wirewrap tumbled piece 11 grams