Jump to content

REXX: Difference between revisions

From EDM2
mNo edit summary
Ak120 (talk | contribs)
 
(144 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Description==
[[Image:Rexxlogo.png|250px|right]]
[[Image:Rexxlogo.png|250px|right]]
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 mini computer operating systems.
'''REXX''' is an interpreted, procedural structured language that is included with every version of OS/2 EE 1.2 and later, IBM PC-DOS 7.0 and most AmigaOS 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. 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.
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.


==A list of OS/2 implementations of REXX==
==History==
* [[Object REXX]] - Open source - OS/2 version discontinued.
The REXX language was created by [[Mike Cowlishaw]] in 1979 under VM/CMS. The second implementation (2.00) was used inside IBM in 1980. Language level 3.20 was included in [[VM/SP]] Release 3 which was released in 1983.
* [[Personal REXX]] - Commercial - Discontinued
* [[Regina REXX]] - Open Source - Current
* [[Classic REXX|REXX/2]] aka Classic REXX - Development discontinued, but shipped with all OS/2 32 bit versions and eComStation.


====Libraries, extensions and bindings====
Third party implementations started appearing in 1985.
* [[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.


====GUI/Widget bindings====
In 1987 REXX was chosen to be the [[Systems Application Architecture]] (SAA) procedural language.
* [[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====
In 1989 the first version of IBM CMS REXX Compiler was released.
* [[GpfREXX]] - Commercial - Discontinued
* [[MAID]] -  Commercial - Current
* [[VX-REXX]] -  Commercial - Discontinued


====Editors with REXX support====
'''[[Object REXX]]''' is a different language that has been given object-oriented extensions modelled on those present in [[Smalltalk]]. While it is mostly compatible with Classic REXX there are some minor differences. It means that some REXX programs have to be modified to run correctly under Object REXX.
* [[Boxer]]
* [[FTE]]
* [[Future Wave Editor]]
* [[jEdit]] - Java editor
* [[KEDIT]]


==A list of DOS implementations of REXX==
'''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.
* [[BREXX]] - Open Source - Current
* [[Classic REXX]] - Commercial - Comes with PC-DOS versions 7 and higher.
* [http://speleotrove.com/rexxhist/rexxcrx.html Compact Rexx (CRX)] - Open source - Discontinued.
* [[Personal REXX]] - Commercial - Discontinued
* [[Portable Rexx]] - Commercial - Discontinued
* [[Regina REXX]] - Open Source - Current


==A list of REXX implementations that run under WinOS/2==
==Implementations==
* [[Object REXX]] - Open source - Win32s version discontinued - IBM versions supported running under Win3x with Win32s.
{|class="wikitable"
* [[Personal REXX]] - Commercial - Discontinued
!rowspan=2|Vendor||rowspan=2|Implementation||colspan=4|Operating environment||rowspan=2|Notes
* [[WinREXX]] - Commercial - Discontinued
|-
* [[WREXX]] - Commercial - Discontinued.
!OS/2||DOS||Win16||Win32
|-
|rowspan=3|IBM||[[Procedures Language 2/REXX]]||X|| || || ||(aka SAA REXX) shipped with OS/2
|-
|[[REXXPC88]]|| ||X|| || ||IBM internal (1987/88)
|-
|[[PC DOS REXX]]|| ||X|| || ||introduced with IBM [[PC DOS]] 7
|-
|Quercus||[[Personal REXX]]||X||X||X|| ||Commercial
|-
| ||[[Regina REXX]]||X||X|| || ||Compatible with Classic REXX - Open Source
|-
| ||[[BREXX]]|| ||X|| || ||Open Source
|-
| ||Compact Rexx (CRX)|| ||X|| || ||Open source
|-
|Kilowatt Software||Portable Rexx|| ||X|| || ||Commercial
|-
| ||WinREXX|| || ||X|| ||Commercial
|-
| ||WREXX|| || ||X|| ||Commercial
|}


==A list of REXX implementations that run under Java==
===Text editor support===
* [[NetRexx]]
*[[Boxer]] - Regina, IBM and BREXX support included by default
*[[FTE]] - support for syntax highlighting, code folding and syntax-aware autoindent.


==A list of REXX implementations in JavaScript==
*
==Publications==
==Publications==
;Classic REXX Books.
For listings of REXX related books and general articles see the [[REXX Bibliography]].
* Michael F. Cowlishaw: The REXX Language: A Practical Approach to Programming; Second Edition - 1990 - ISBN: 0137806515 - In print
* Michael F. Cowlishaw: [https://assets.cs.ncl.ac.uk/seminars/229.pdf A Practical Approach to Programming the Rexx Language] - 1985 - ISBN: 0-13-780735-X - Out of print.
* Howard Fosdick: Rexx Programmer's Reference - 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: Sams Teach Yourself REXX in 21 Days - 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 and 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 und Stefan Gerten: REXX unter OS/2. – 1996 - ISBN: 3446185089 - Out of print.
* Michael F. Cowlishaw: Die Programmiersprache REXX - 1988 - ISBN: 3446151958 - Out of print - German translation of the first edition of the "Rex 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 "Rex language" book.
 
;Object REXX books.
* Tom Ender: Object-oriented Programming with REXX - 1997 - ISBN: 0471118443 - Out of print.
* Ueli Wahli, Trevor Turton, Eddie Griborn and 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====
* [[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]]
 
=====Code snippets=====
* [[Stupid OS/2 Tricks/REXX Commands]]
 
====Tutorials and other learning material====
* [http://www.cs.ox.ac.uk/people/ian.collier/Docs/rexx_info/whole.html Ian Collier's REXX tutorial]
* [http://www.cs.ox.ac.uk/people/ian.collier/Docs/rexx_info/whole.html Ian Collier's REXX tutorial]
* [http://www.os2.cz/en/introduction-rexx-programming-language An Introduction To The REXX Programming Language] - From OS/2.cz
* [[Vladimír Zábrodský]]: ''[http://zabrodsky-rexx.byethost18.com/introrexx.html An Introduction To The REXX Programming Language]''
* [http://www.lesbell.com.au/rexxobj.html Using REXX to repair and control the desktop] - From Les Bell and Associates Pty Ltd
* [[Keith Watts]]: ''[https://web.archive.org/web/20181120094832/http://www.kilowattsoftware.com/tutorial/rexx/ The Classic REXX tutorial]'' - Teaches the language to "Language Level 4.00 (TRL-2)", that is roughly the same as the SAA REXX shipped with OS/2
* [http://www.kyla.co.uk/other/rexx1.htm REXX: THE LANGUAGE] - Introduction and tutorial by James Barry of Kyla Computing.
* Matt Slocum: [http://www.sloky.net/programming/Rexx.rtf Rexx Programming Guide] - Nov 2005


==Links==
==Links==
* [http://www.rexxla.org The Rexx Language Association]
* [http://www.rexxla.org The Rexx Language Association]
* [http://users.comlab.ox.ac.uk/ian.collier/Rexx/index.html Ian Collier's REXX page]
* [https://erroneousbee.github.io/Computers/RexxStyleGuide.html Style Guide for Rexx]
* [http://www-01.ibm.com/software/awdtools/rexx/ IBM REXX page]
* [http://www.rexx.org Mark Hessling's Home Page] - Lots of Rexx and Regina information and files from the gent behind [[Regina REXX]], including a Rexx manual
* [http://www.lightlink.com/hessling/ Mark Hessling's Home Page] - Lots of Rexx and Regina information and files from the gent behind [[Regina REXX]], including a Rexx manual
* [http://www.spgmbh.de/tipstricks_en.htm Tips & Tricks, Samples] - Material collected by a mainframe REXX programmer and some of it does not apply to OS/2 REXX.
====USENET====
* [http://cosmosgrammaticus.blogspot.co.uk/ Cosmos Grammaticus] - REXX related blog
* [news:comp.lang.rexx comp.lang.REXX] - Surprisingly popular - Go to the [https://groups.google.com/forum/#!forum/comp.lang.rexx Google groups version] if you are newsgroup challenged.
 
====Built with REXX====
* USENET: [news:comp.lang.rexx comp.lang.REXX]
* [http://www.srehttp.org/ SRE-HTTP] - A web server written primarily in REXX
* [http://www.rexxla.org/forum.html REXX LA forum] - The official [[REXX Language Association]] forum
 
;Standards
* [http://www.rexxla.org/rexxlang/standards/j18pub.pdf ANSI standard for Rexx (X3.274)], published in 1996.
* [https://archive.org/details/ProgrammingLanguageExtendedRexx Extended REXX proposal] (Nov 1998)


==Standards==
;Source code snippets, archives and collections
* ANSI standard for Rexx (X3.274), Published in 1996.
Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form.
==REXX history==
* [http://zabrodsky-rexx.byethost18.com/aat/ Album of Algorithms and Techniques for Standard Rexx]  - [[Vladimír Zábrodský]]'s collection of REXX code, mostly small snippets.
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.
* [http://mzelden.com/mvsutil.html Mark's MVS Utilities] - While mostly XEDIT and MVS related, there are a few worthwhile REXX programs in there as well.
* [http://pleac.sourceforge.net/pleac_rexx/index.html PLEAC-REXX] - Collection of common REXX routines
* [http://www.robvanderwoude.com/rexxexamples.php REXX examples from Rob van der Woude's Scripting homepage]
* [http://www.rexswain.com/b2mmddyy.rex Rex Swain's B2MMDDYY.REX] - Convert Base format date to MM/DD/YYYY
* [http://www.wpachl.at/Rexx_Programs.html Walter Pachl's REXX code], contains many REXX snippets.


[[Category:Programming Languages]] [[Category:REXX]]
[[Category:Programming Languages]]

Latest revision as of 18:49, 2 April 2025

REXX is an interpreted, procedural structured language that is included with every version of OS/2 EE 1.2 and later, IBM PC-DOS 7.0 and most AmigaOS 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.

History

The REXX language was created by Mike Cowlishaw in 1979 under VM/CMS. The second implementation (2.00) was used inside IBM in 1980. Language level 3.20 was included in VM/SP Release 3 which was released in 1983.

Third party implementations started appearing in 1985.

In 1987 REXX was chosen to be the Systems Application Architecture (SAA) procedural language.

In 1989 the first version of IBM CMS REXX Compiler was released.

Object REXX is a different language that has been given object-oriented extensions modelled on those present in Smalltalk. While it is mostly compatible with Classic REXX there are some minor differences. It means that some REXX programs have to be modified to run correctly under Object REXX.

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.

Implementations

Vendor Implementation Operating environment Notes
OS/2 DOS Win16 Win32
IBM Procedures Language 2/REXX X (aka SAA REXX) shipped with OS/2
REXXPC88 X IBM internal (1987/88)
PC DOS REXX X introduced with IBM PC DOS 7
Quercus Personal REXX X X X Commercial
Regina REXX X X Compatible with Classic REXX - Open Source
BREXX X Open Source
Compact Rexx (CRX) X Open source
Kilowatt Software Portable Rexx X Commercial
WinREXX X Commercial
WREXX X Commercial

Text editor support

  • Boxer - Regina, IBM and BREXX support included by default
  • FTE - support for syntax highlighting, code folding and syntax-aware autoindent.

Publications

For listings of REXX related books and general articles see the REXX Bibliography.

Links

Standards
Source code snippets, archives and collections

Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form.