Object REXX

From HandWiki
Object REXX
Rexx3 orig size transparent.gif
ParadigmObject-oriented (class-based)
Designed bySimon C. Nash (IBM)
First appeared1988; 36 years ago (1988)
Stable release
5.0.0 / 23 December 2022; 18 months ago (2022-12-23)
Platformx86-32, x86-64, ARM, s390x
OSCross-platform: Linux, Microsoft Windows, macOS, Solaris, AIX, OS/2
LicenseCPL 1.0, GPLv2
Filename extensions.rxs, .rex, .rexx, .cls
Websitewww.rexxla.org
Major implementations
ooREXX (since 2004)
Influenced by
Rexx, Smalltalk[1]
Influenced
NetRexx[2]

The Object REXX programming language is a general-purpose object-oriented scripting language.

Based on the Rexx programming language (often called "Classic Rexx"), Object REXX is designed to be easy to learn, use, and maintain. Object REXX retains all the features and syntax of Classic Rexx while adding full object-oriented programming capabilities.

History

Object REXX was initially introduced by IBM for the operating system OS/2. IBM later[3] ported it to Microsoft Windows and IBM's AIX.

Object REXX was a follow-on to and a significant extension[lower-alpha 1] of the "Classic Rexx" language. Classic Rexx is a cross-platform scripting language that runs on all popular operating systems. It was originally created for the Conversational Monitor System (CMS) component of the operating system VM/SP Release 3[4] and later implemented by IBM on Multiple Virtual Storage (MVS),[lower-alpha 2] OS/2, PC DOS, and AIX. Other organizations subsequently implemented Classic Rexx interpreters for Windows, Linux, Unix, macOS, Android, and many other operating systems.

On October 12, 2004, IBM released Object REXX as free and open-source software.[6] In this new incarnation, Object REXX was rechristened Open Object Rexx (ooREXX). Since 2004, the Rexx Language Association has supported, maintained, and further developed ooRexx. ooRexx is currently available for Windows, Linux, MacOS, and Unix.

IBM's original Object REXX interpreter continues to be available in OS/2-derived operating systems, such as ArcaOS and eComStation.

Features

As supersets of Classic Rexx, ooRexx and Object REXX endeavor to retain all the features of Classic Rexx.

To this, ooRexx and Object REXX add all the features typical of object-oriented languages, such as subclassing, polymorphism, and data encapsulation. Further features include multiple inheritance via the use of mixin classes.

ooRexx and Object REXX are designed to be a compatible superset of Classic Rexx. They conform[lower-alpha 3] to the ANSI standard for the Rexx language (X3.274-1996, “Programming Language Rexx”[7]), for interoperability across platforms with other conforming Rexx implementations. Thus Classic Rexx programs that conform to the ANSI-1996 standard typically run under ooRexx and Object REXX without any changes. This makes it easy to transport both program code and developer knowledge from Classic Rexx to ooRexx and Object REXX.

For Windows, ooRexx includes a Windows Script Host (WSH) Scripting Engine for Rexx. It also includes Object Linking and Embedding/ActiveX support and OODialog Runtime to support OODialog programs. However, the code that IBM released to open source in 2004 did not include the classes for IBM System Object Model (SOM) and Workplace Shell (WPS) support.[8]

The OS/2 version of IBM Object REXX includes classes to support the IBM System Object Model [9] and Workplace Shell.[10] These are also included OS/2's initial follow-on product, eComStation, and also in its current descendant, ArcaOS.[11]

Notes

  1. Object REXX and Open Object Rexx do not include all of the new features of ANSI standard Rexx, although they have many new features of their own.
  2. As part of Time Sharing Option Extensions (TSO/E) Version 2[5]
  3. Object REXX and Open Object Rexx do not include all of the new features of ANSI standard Rexx.

References

  1. René Jansen (2011-12-01). "7 Reasons that Rexx Still Matters". SmartBear blog. http://blog.smartbear.com/programming/7-reasons-that-rexx-still-matters/. 
  2. "NetRexx – Programming language derived from Java and Rexx". OS/2 EWS. IBM PC BBS. 1996. ftp://ftp.oldskool.org/pub/IBM_PC_BBS/os2_ews/nrexx.txt. 
  3. "IBM Object REXX for Windows V2R1 — Object-Oriented Programming for Beginners to Advanced Users", Announcement Letters (IBM), March 20, 2001, 201-063, https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&infotype=an&supplier=897&letternum=ENUS201-063 
  4. "VM/SYSTEM PRODUCT RELEASE 3 (VM/SP RELEASE 3) 5664-167". Announcement letters. IBM. February 1, 1983. https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/8/897/ENUS283-018/index.html. 
  5. "IBM TSO EXTENSIONS VERSION 2". Announcement letters. IBM. April 19, 1988. https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/1/897/ENUS288-191/index.html&request_locale=en. 
  6. "IBM Contributes Scripting Language to the Rexx Language Association, Encourages Innovation Around REXX Application Development". IBM. 2004-11-29. http://www-01.ibm.com/software/awdtools/rexx/opensource.html. 
  7. "X3.274-1996 American National Standards Institute for Programming Language Rexx". https://rexxinfo.org/info/articles/ansi_1996_standard_j18pub.pdf. 
  8. Where did SOM support go in 4.0.0?
  9. Willis Boughton (2004). "SOM and Object REXX". EDM/2. http://www.edm2.com/index.php/SOM_and_Object_REXX. 
  10. Object REXX Reference. IBM. 
  11. "Does ArcaOS include REXX support?". https://www.arcanoae.com/faqwd/does-arcaos-include-rexx-support/. 

External links