REXX

An interpreted, procedural structured language that is included with every version of OS/2 1.3 and higher, every version of IBM PC-DOS 7.0 and higher and most modern Amiga OS variants and clones in addition to all current and recent IBM mainframe and minicomputer operating systems.
Although REXX is a generic programming language and can be (and has been) used to construct everything from simple utilities to large business applications, it is primarily used as a scripting or macro language, and as such is unusually easy to learn. The REXX language was created by Mike Cowlishaw of IBM Hursley in 1979 and the first implementation was shipped inside IBM in 1980 and as an external product in 1982.
Object REXX is a later version of the language that has been given object-oriented extensions modelled on those present in Smalltalk (IBM's language of choice at the time), while it is mostly compatible with Classic REXX there are some minor differences that mean that most larger REXX programs have to have at the lease some modifications to run correctly under OREXX, and this has meant that in the OS/2 world it never gained any real traction. Amiga REXX is a clone of IBM's Classic REXX that has extensions to help its use as a mechanism for application to application and/or inter-application communication, Regina REXX supports those extensions.
OS/2 version 4 and later and all versions of eComStation are shipped with both Classic REXX and Object REXX, the difference being that OS/2 defaults to Object REXX while eComStation defaults to Classic REXX. If you want to switch between implementations you can issue the SWITCHRX command in a CLI shell and the system will default to the alternative version to the current one at next boot. If you want to use both at the same time you have a few options, you can specifically call the alternative version you are currently using either from a command line or from a script or batch file or you can associate different extensions to different interpreters.
It is in general recommended that Classic REXX is set as the default since most OS/2 and eComStation utilities use it.
OS/2 REXX implementations and tools
- Object REXX - Open source - OS/2 version discontinued, but older version shipped with OS/2 V4 and all eComStation versions.
- Personal REXX - Commercial - Discontinued
- Regina REXX - Compatible with Classic REXX - Open Source - Current
- REXX/2 aka Classic REXX - Development discontinued, but shipped with all OS/2 32 bit versions and eComStation.
Libraries, extensions and bindings
- Bullet/REXX - Allows you to work with xBase files or databases - Commercial - Discontinued.
- dbfREXX - Allows you to work with xBase files or databases - Commercial - Discontinued.
- REXXBOS - A complete OS/2 system interface for REXX - great for REXX CGI scripts - Commercial - Current
- REXXSEM - Semaphore support for REXX - Used to be shareware, now freeware.
- RXULS - REXX Unicode API - Open source - Current.
- SpUtils - PM and API fuctions - Open source - Discontinued.
GUI/Widget bindings
- Rexx/Curses - Bindings to the PD Curses text mode UI library - Open source - Current
- REXX/DW - Bindings to the Dynamic Windows GUI/Widget toolkit - Open source - Current
- REXX/Tk - Bindings to the Tcl/Tk GUI/Widget toolkit - Open source - Discontinued
Graphical front ends and REXX development systems
- Dr. Dialog - Freeware - Discontinued
- GpfREXX - Commercial - Development discontinued but still available for sale at a discounted price.
- MAID - Commercial - Current
- VREXX - Freeware - Discontinued
- VX-REXX - Commercial - Discontinued
OS/2 text & programmers editors with REXX support
- Boxer - Classic REXX (Regina & IBM) and BREXX support included by default.
- Enhanced Editor - Has syntax highlighting, auto-formatting and automatic code summary for REXX.
- FTE - Has support for syntax highlighting, code folding and syntax-aware autoindent. - Open source - Current.
- Future Wave Editor - macro & syntax support included by default - Shareware - Current.
- jEdit - Java editor
- KEDIT - XEDIT clone - Commercial - Discontinued.
- SourceLink - Commercial - Discontinued - Browser/Editor/Visualiser.
Source code browsers, visualisers and analysers
- SourceLink - Commercial - Discontinued - Browser/Editor/Visualiser.
OS/2 applications that can be scripted with REXX
OS/2 based application that have explicit REXX support, other software that has some sort of scripting support can sometimes be "hijacked" to use REXX as well.
- Future Wave Editor - Text editor.
- Gnuplot - Plotting package.
- KEDIT - Text editor.
- Mesa 2 - Spreadsheet.
- Photo Graphics Pro - Line/pixel graphics
- SourceLink - Source code browser/editor/visualiser.
- THE - Editor
A list of DOS implementations of REXX
- BREXX - Open Source - Current
- PC DOS REXX - Commercial - included in IBM PC DOS versions 7 and higher.
- Compact Rexx (CRX) - Open source - Discontinued.
- Personal REXX - Commercial - Discontinued
- Portable Rexx - Commercial - Discontinued
- Regina REXX - Compatible with Classic REXX - Open Source - Current
- REXXPC88 - 1987/88 IBM internal
DOS text & programmers editors with REXX support
- Boxer - Regina, IBM and BREXX support included by default
- FTE - Has support for syntax highlighting, code folding and syntax-aware autoindent. - Open source - Current.
A list of REXX implementations that run under WinOS/2
- Object REXX - Open source - Win32s version discontinued - IBM versions supported running under Win3x with Win32s.
- Personal REXX - Commercial - Discontinued
- WinREXX - Commercial - Discontinued
- WREXX - Commercial - Discontinued.
A list of REXX implementations that run under Java
Publications
- Classic REXX Books.
- Michael F. Cowlishaw: A Practical Approach to Programming the Rexx Language - Prentice-Hall 1985 - ISBN 0-13-780735-X - Out of print
- Michael F. Cowlishaw: The REXX Language: A Practical Approach to Programming; Second Edition - Prentice-Hall 1990, ISBN 0-13-780651-5 - In print
- Howard Fosdick: Rexx Programmer's Reference - Wrox 2005, ISBN 0764579967 - In print
- William F. Schindler: Down to Earth REXX - 2000, ISBN 0967759005 - In print
- Gabriel F. Gargiulo: Mastering OS/2 Rexx - 1994, ISBN 0471519014 - In print
- Gabriel F. Gargiulo: Rexx With OS/2, TSO & CMS Features - Quick Reference Guide (Mainframe Technical Series) – 1999 - ISBN 189255903X - Out of print
- William F. Schindler; Esther Schindler: Teach Yourself REXX in 21 Days - Sams 1994, ISBN 0672305291 - Out of print ("Down to Earth REXX" above in an updated, in-print version)
- Merrill Callaway: The Rexx Cookbook: A Tutorial Guide to the Rexx Language in OS/2 Warp on the IBM Personal Computer - 1995 - ISBN 0963277340 - Out of print
- Robert O'Hara; David Ross Gomberg: Modern Programming Using REXX - 1988, ISBN 0135973295 - Out of print
- Anthony S. Rudd: Application Development Using OS/2 Rexx - 1994, ISBN 047160691X - Out of print
- Anthony S. Rudd: Practical Usage of REXX (Ellis Horwood Series in Computers and Their Applications) - 1990 -ISBN 013682790X - Out of print
- Ronny Richardson: Writing OS/2 REXX Programs - McGraw-Hill/IBM 1994, ISBN 007052372X - Out of print (Came with examples on a floppy)
- Richard K. Goran: Rexx Reference Summary Handbook - Second Edition 1994, ISBN 0963985418 - Out of print
- William Mansfield: Rexx Language: Special Edition - 1990, ISBN 0137790678 - Out of print
- Hallett German: OS/2 2.1 REXX Handbook: Basics, Applications and Tips - VNR Computer Library, 1993, ISBN 0442017340 - Out of print
- Peter C. Kiesel; J.Ranade: REXX: Advanced Techniques for Programmers - McGraw-Hill/IBM 1992 - ISBN 0070346003 - Our of print
Classic REXX in German
- Karlheinz Wittemann; Stefan Gerten: REXX unter OS/2 – Hanser 1996, ISBN 3446185089 - Out of print
- Michael F. Cowlishaw: Die Programmiersprache REXX - Hanser 1988, ISBN 3-446-15195-8 - Out of print - German translation of the first edition of the "Rexx language" book.
- Gerhard Leibrock: Das REXX-Lexikon. Begriffe, Anweisungen, Funktionen - 1997, ISBN 3486236725 - Out of print
Classic REXX in Japanese
- Michael F. Cowlishaw: Rekkusu gengo nyumon: puroguraminguhe no jissenteki apurochi (Translated by Yoichi Muraoka and Koji Shibano) - 1987 - ISBN 4-7649-0136-6 - Japanese translation of the first edition of the the "Rexx language" book
- Object REXX books.
- Tom Ender: Object-oriented Programming with REXX - 1997, ISBN 0471118443 - Out of print
- Ueli Wahli; Trevor Turton; Eddie Griborn; Norio Furukawa: Object Rexx for OS/2 Warp - 1996, ISBN 0132734672 - Out of print
- The following books apply to SAA or mainframe REXX but may be useful nonetheless
- Charles Daney: Programming in REXX - 1990, ISBN 0070153051 - Out of print
Local articles
- Douglas Clark: Rexx: The King is Alive and Well
- Dan Bridges: The Joy of REXX - Tutorial and Book review
- Roger Orr: OS/2 Procedures Language - REXX - Introductory material
- REXX Tips & Tricks:Sources
- Dave Briccetti: Sending Mail with REXX
- OS2 API:REXX
- Darin McBride: REXXSEM:The Reference
- REXX Tips & Tricks
Code snippets
Tutorials and other learning material
- Our own introduction and turorial written by Roger Orr: OS/2 Procedures Language - REXX
- And a more thorough tutorial called "REXX for Newies" that was written by Chris Wenham:
- REXX for Newies:Part I (October 1, 1998)
- REXX for Newies:Part II (October 16, 1998)
- REXX for Newies:Part III (November 1, 1998)
- REXX for Newies:Part IV (November 16, 1998)
- REXX for Newies:Part V (December 16, 1998)
- Ian Collier's REXX tutorial
- An Introduction To The REXX Programming Language - From OS/2.cz
- Using REXX to repair and control the desktop - From Les Bell and Associates Pty Ltd
Links
- The Rexx Language Association
- Ian Collier's REXX page
- IBM REXX page
- Mark Hessling's Home Page - Lots of Rexx and Regina information and files from the gent behind Regina REXX, including a Rexx manual
USENET
- comp.lang.REXX - Surprisingly popular - Go to the Google groups version if you are newsgroup challenged.
Built with REXX
- SRE-HTTP - A web server written primarily in REXX
Standards
- ANSI standard for Rexx (X3.274), Published in 1996.
REXX history
The REXX language was created by Mike Cowlishaw of IBM Hursley in 1979, initially as a written specification and the first implementation was shipped inside IBM in 1980 and as an external product in 1982.