Jump to content

REXX: Difference between revisions

From EDM2
Ak120 (talk | contribs)
Ak120 (talk | contribs)
mNo edit summary
Line 1: Line 1:
[[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.2EE and later, 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.
An interpreted, procedural structured language that is included with every version of OS/2 1.2EE and later, IBM PC-DOS 7.0 and most 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, third party implementations started appearing in 1984.
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, third party implementations started appearing in 1984.


'''[[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 least 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.
'''[[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 least 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 REXX implementations and tools==
==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.
*[[Object REXX]] - Open source - OS/2 version discontinued, but older version shipped with OS/2 Warp 4.
* [[Personal REXX]] - Commercial - Discontinued
*[[Personal REXX]] - Commercial - Discontinued
* [[Regina REXX]] - Compatible with Classic REXX - Open Source - Current
*[[Regina REXX]] - Compatible with Classic REXX - Open Source - Current
* [[Procedures Language/2|REXX/2]] aka Classic REXX - Development discontinued, but shipped with all OS/2 32 bit versions and eComStation.
*'''Procedures Language/2 REXX''' aka SAA REXX - Development discontinued, but shipped with all OS/2 32-bit versions.


====Libraries, extensions and bindings====
====Libraries, extensions and bindings====
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">
* [[Bullet|Bullet/REXX]] - Allows you to work with [[xBase]] files or databases - Commercial - Discontinued.
* [[Bullet|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.
* [[dbfREXX]] - Allows you to work with [[xBase]] files or databases - Commercial - Discontinued
* [[Info-Zip]] - Compression/decompression, avl. in a REXX compatible DLL - Open source - Current.
* [[Info-Zip]] - Compression/decompression, avl. in a REXX compatible DLL - Open source - Current
* [[LesTecIO]] - Sundry I/O routines - Commercial - Current.
* [[LesTecIO]] - Sundry I/O routines - Commercial - Current
* [[Pro*REXX]] - Bindings/Interface to a [[Oracle Database]] - Commercial - Discontinued
*Pro*REXX - Bindings/Interface to a [[Oracle Database]] - Commercial - Discontinued
* [[RexxBase]] - Allows you to work with [[xBase]] files or databases - Freeware - Discontinued.
* [[RexxBase]] - Allows you to work with [[xBase]] files or databases - Freeware - Discontinued.
* [[REXXBOS]] - A complete OS/2 system interface for REXX - Commercial - Current
* [[REXXBOS]] - A complete OS/2 system interface for REXX - Commercial - Current
* [[REXX/CURL]] - Bindings to the [[libcURL]] library - Open source - Current.
* [[REXX/CURL]] - Bindings to the [[libcURL]] library - Open source - Current
* [[REXX/CURL]] - Encode, compress and encryption ext. - Open source - Current.
* [[REXX/CURL]] - Encode, compress and encryption ext. - Open source - Current
* [[REXX/GD]] - Bitmap manipulation extension - Open source - Sort of current.
* [[REXX/GD]] - Bitmap manipulation extension - Open source - Sort of current
* [[REXXIO]] - I/O routines, freeware version of LesTecIO -Current.
* [[REXXIO]] - I/O routines, freeware version of LesTecIO -Current
* [[REXX/ISAM]] - ISAM database files extension - Open source - Discontinued.
* [[REXX/ISAM]] - ISAM database files extension - Open source - Discontinued
* [[REXX/SQL]] - [[SQL]] database access - Open source - Current.
* [[REXX/SQL]] - [[SQL]] database access - Open source - Current
* [[REXXSEM]] - Semaphore support for REXX - Used to be shareware, now freeware.
* [[REXXSEM]] - Semaphore support for REXX - Used to be shareware, now freeware
* [[OS2 API:RXULS|RXULS]] - REXX [[Unicode]] API - Open source - Current.
* [[OS2 API:RXULS|RXULS]] - REXX [[Unicode]] API - Open source - Current.
* [[SpUtils]] - PM and API functions - Open source - Discontinued.
* [[SpUtils]] - PM and API functions - Open source - Discontinued.
Line 86: Line 86:
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 by shaping the output of your REXX script to what the application expects.
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 by shaping the output of your REXX script to what the application expects.
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* [[Enhanced Editor]] - Text editor.
*[[Enhanced Editor]] - Text editor
* [[Embellish]] - Bitmap graphics editing (formerly JoeView)
*[[Embellish]] - Bitmap graphics editing
* [[Future Wave Editor]] - Text editor.
*[[Future Wave Editor]] - Text editor
* [[Gnuplot]] - Plotting package.
*[[Gnuplot]] - Plotting package.
* [[HyperAccess]] - Communications program
*[[HyperAccess]] - Communications program
* [[Impos/2]] - Bitmap graphics editing
*[[Impos/2]] - Bitmap graphics editing
* [[KEDIT]] - Text editor.
*[[KEDIT]] - Text editor
* [[Kermit 95]] - Communications.
*[[Kermit 95]] - Communications.
* [[Lpex]] - Editor, part of [[VisualAge C++]]
*[[Lpex]] - Editor, part of [[VisualAge C++]]
* [[Lotus 1-2-3]]
*[[Lotus 1-2-3]]
* [[Mesa 2]] - Spreadsheet.
*[[Mesa 2]] - Spreadsheet
* [[Photo Graphics Pro]] - Line/pixel graphics
*[[Photo Graphics Pro]] - Line/pixel graphics
* [[PM-Mail]] - E-Mail program.
*[[PM-Mail]] - E-Mail program.
* [[REXXterm]] - Communications program
*[[REXXterm]] - Communications program
* [[SourceLink]] - Source code browser/editor/visualiser.
*[[SourceLink]] - Source code browser/editor/visualiser
* [[THE]] - Editor
*[[THE]] - Editor
* [[ZOC]] - Communications program.
*ZOC - Communications program.
</div>
</div>


Line 119: Line 119:


==A list of REXX implementations that run under WinOS/2==
==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.
*[[Object REXX]] - Open source - Win32s version discontinued - IBM versions supported running under Win3x with Win32s.
* [[Personal REXX]] - Commercial - Discontinued
*[[Personal REXX]] - Commercial - Discontinued
* [[WinREXX]] - Commercial - Discontinued
*WinREXX - Commercial - Discontinued
* [[WREXX]] - Commercial - Discontinued.
*WREXX - Commercial - Discontinued


==A list of REXX implementations that run under Java==
==A list of REXX implementations that run under Java==
Line 138: Line 138:
* [[OS2 API:REXX]]
* [[OS2 API:REXX]]
* [[Darin McBride]]: [[REXXSEM:The Reference]]
* [[Darin McBride]]: [[REXXSEM:The Reference]]
* [[Charles Daney]]: [[Common REXX Pitfalls]]
*[[Charles Daney]]: [[Common REXX Pitfalls]]
* [[Charles Daney]]: [[How to Do It in OS/2 REXX]]
*Charles Daney: [[How to Do It in OS/2 REXX]]
* [[Charles Daney]]: [[Advanced REXX Programming Topics]]
*Charles Daney: [[Advanced REXX Programming Topics]]
* [[Charles Daney]]: [[Solving REXX and OS/2 problems with REXXLIB]]
*Charles Daney: [[Solving REXX and OS/2 problems with REXXLIB]]
* [[REXX Tips & Tricks]]
* [[REXX Tips & Tricks]]
* [[Richard K. Goran]]: [[Introduction to object manipulation in REXX]]
*[[Richard K. Goran]]: [[Introduction to object manipulation in REXX]]
* [[Richard K. Goran]]: [[REXX Components]]
*Richard K. Goran: [[REXX Components]]
* [[Richard K. Goran]]: [[Creating and building your own LaunchPad]]
*Richard K. Goran: [[Creating and building your own LaunchPad]]
* [[Richard K. Goran]]: [[Info-ZIP's UnZip REXX Interface]]
*Richard K. Goran: [[Info-ZIP's UnZip REXX Interface]]


====Tutorials and other learning material====
====Tutorials and other learning material====
* Our own introduction and turorial written by [[Roger Orr]]: [[OS/2 Procedures Language - REXX]]
* 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]]:
* 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 I]] (Oct 1998)
** [[REXX for Newies:Part II]] (October 16, 1998)
** [[REXX for Newies:Part II]] (Oct 1998)
** [[REXX for Newies:Part III]] (November 1, 1998)
** [[REXX for Newies:Part III]] (Nov 1998)
** [[REXX for Newies:Part IV]] (November 16, 1998)  
** [[REXX for Newies:Part IV]] (Nov 1998)  
** [[REXX for Newies:Part V]] (December 16, 1998)  
** [[REXX for Newies:Part V]] (Dec 1998)  
* [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]
* [[Vladimír Zábrodský]]: ''[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://www.os2.cz/en/introduction-rexx-programming-language An Introduction To The REXX Programming Language]'' - From OS/2.cz
Line 161: Line 161:
* [http://www.kyla.co.uk/other/rexx1.htm REXX: THE LANGUAGE] - Introduction and tutorial by James Barry of Kyla Computing.
* [http://www.kyla.co.uk/other/rexx1.htm REXX: THE LANGUAGE] - Introduction and tutorial by James Barry of Kyla Computing.
* [http://www.lesbell.com.au/rexxobj.html Using REXX to repair and control the desktop] - From Les Bell and Associates Pty Ltd
* [http://www.lesbell.com.au/rexxobj.html Using REXX to repair and control the desktop] - From Les Bell and Associates Pty Ltd
* Matt Slocum: [http://www.sloky.net/programming/Rexx.rtf Rexx Programming Guide] - November 14, 2005 - In [[RTF]] format.
* Matt Slocum: [http://www.sloky.net/programming/Rexx.rtf Rexx Programming Guide] - Nov 2005


=====Czech language tutorials=====
=====Czech language tutorials=====
* [[Vladimír Zábrodský]]: ''[http://dhost.info/zabrodskyvlada/cz_introrexx.html Úvod do programovacího jazyka REXX]'' - Short tutorial introduction to REXX in Czech.
* [[Vladimír Zábrodský]]: ''[http://dhost.info/zabrodskyvlada/cz_introrexx.html Úvod do programovacího jazyka REXX]'' - Short tutorial introduction to REXX in Czech.
==Links==
==Links==
* [http://www.rexxla.org The Rexx Language Association]
* [http://www.rexxla.org The Rexx Language Association]
Line 188: Line 189:
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.
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.


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

Revision as of 20:41, 12 January 2017

An interpreted, procedural structured language that is included with every version of OS/2 1.2EE and later, IBM PC-DOS 7.0 and most 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, third party implementations started appearing in 1984.

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 least 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 REXX implementations and tools

  • Object REXX - Open source - OS/2 version discontinued, but older version shipped with OS/2 Warp 4.
  • Personal REXX - Commercial - Discontinued
  • Regina REXX - Compatible with Classic REXX - Open Source - Current
  • Procedures Language/2 REXX aka SAA REXX - Development discontinued, but shipped with all OS/2 32-bit versions.

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
  • Info-Zip - Compression/decompression, avl. in a REXX compatible DLL - Open source - Current
  • LesTecIO - Sundry I/O routines - Commercial - Current
  • Pro*REXX - Bindings/Interface to a Oracle Database - Commercial - Discontinued
  • RexxBase - Allows you to work with xBase files or databases - Freeware - Discontinued.
  • REXXBOS - A complete OS/2 system interface for REXX - Commercial - Current
  • REXX/CURL - Bindings to the libcURL library - Open source - Current
  • REXX/CURL - Encode, compress and encryption ext. - Open source - Current
  • REXX/GD - Bitmap manipulation extension - Open source - Sort of current
  • REXXIO - I/O routines, freeware version of LesTecIO -Current
  • REXX/ISAM - ISAM database files extension - Open source - Discontinued
  • REXX/SQL - SQL database access - Open source - Current
  • REXXSEM - Semaphore support for REXX - Used to be shareware, now freeware
  • RXULS - REXX Unicode API - Open source - Current.
  • SpUtils - PM and API functions - Open source - Discontinued.

GUI/Widget bindings

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
  • VisPro/REXX - Was commercial, now freeware - Discontinued
  • VREXX - Freeware - Discontinued
  • VX-REXX - Commercial - Discontinued

Utilities and translators

  • Rexx2Nrx - Converts Classic REXX software to NetRexx - Open Source - 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.
  • Fast Editor Lite
  • 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.
  • KEDIT - XEDIT clone - Commercial - Discontinued.
  • Preditor/2 - REXX template with syntax highlighting - Commercial - Discontinued.
  • SourceLink - Commercial - Discontinued - Browser/Editor/Visualiser.

Source code browsers, visualisers, analysers and other utilities

  • Exuberant ctags - Creates index files out of REXX source files - Open source - Current.
  • Pillarsoft Suite - Contains a code template tool with REXX support - Shareware - Discontinued
  • REXX/Trans - Helps you use REXX as a macro lang. in your app - Open source - Current.
  • REXX/Wrapper - Wraps REXX code into a semi-exe - Open source - Current.
  • SourceLink - Commercial - Discontinued - Browser/Editor/Visualiser.

REXX 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.

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 by shaping the output of your REXX script to what the application expects.

A list of DOS implementations of REXX

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

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

Local articles

Tutorials and other learning material

Czech language tutorials

Links

USENET, forums and e-mail lists

Built with REXX

  • SRE-HTTP - A web server written primarily in REXX

Standards

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.