Object REXX

From Wikipedia, the free encyclopedia
(Redirected from OREXX)
Object REXX
ParadigmObject-oriented (class-based)
Designed bySimon C. Nash (IBM)
First appeared1988; 36 years ago (1988)
Stable release
5.0.0[1] Edit this on Wikidata / 10 May 2023; 12 months ago (10 May 2023)
Preview release
5.1.0
PlatformIA-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[2]
Influenced
NetRexx[3]

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[edit]

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

Object REXX was a follow-on to and a significant extension[a] 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[5] and later implemented by IBM on Multiple Virtual Storage (MVS),[b] 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.[7] 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. The association organises annual symposia for the further development of the Rexx language, including ooRexx. [8]

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

Releases[edit]

The following table contains noteworthy features and changes of major ooRexx interpreter versions. All releases[9] and the necessary documentation[10] are available on Sourceforge. For Arch Linux based distributions the current and the development version are available as Arch User Repository. Since release 5.0.0, portable versions of the interpreter are available that allow it to be used without installation.

Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release
Major Releases Release Date Notable Features and Changes
Old version, no longer maintained: 3.0.0[11][12] 2005-03-30
Old version, no longer maintained: 3.1.0[13] 2006-08-21
  • Various enhancements of interpreter
  • Separate documentation for ooDialog
Old version, no longer maintained: 3.1.1[14] 2006-11-23
  • Support for Linux, Windows, AIX and Solaris
  • Additional functions for the RexxUtil library
  • Additional methods for several classes
  • Addition of CircularQueue class and associated methods
Old version, no longer maintained: 3.1.2[15] 2007-09-17
Old version, no longer maintained: 3.2.0 2008-01-22
  • Several enhancements
Old version, no longer maintained: 4.0.0[16] 2009-09-30
  • Support for 64bit versions of Linux, AIX and Windows
  • Addition of C++ application programming interface for writing extensions
  • Restructuring of ooDialog and addition of 7 classes and 24 methods
  • Addition of Buffer, IdentityTable, Orderable, Package, Pointer, RexxContext, Routine, WeakReference and SocketClass classes and associated methods
  • Addition of 17 samples to illustrate ooRexx concepts
  • Separate documentation for Windows Extension library
  • Four new methods for the RexxQueue, three for the Object, four for the DateTime and one each for the Method, Stem and String classes
  • The MutableBuffer class now supports most of the String class methods
  • Addition of seven methods to the OLEObject class, which is responsible for the Object Linking and Embedding/ActiveX interface
Old version, no longer maintained: 4.1.0[17] 2011-09-28
  • Addition of File class including four new class methods and 29 instance methods
  • Addition of extension library for Unix systems which includes 49 functions
  • Separate documentation for the Rexx Extensions Library and the Unix Extensions Library
  • Addition of extension classes for handling the comma-separated values, multipurpose internet mail extensions and simple mail transfer protocol
  • Addition of ooSQLite extension[18] to create, modify, and query SQL based databases
  • Enhancement of TCP/IP socket support
  • Additional class and method for ooDialog
  • Additional method for DateTime class
Old version, no longer maintained: 4.2.0[19] 2014-02-23
  • Inclusion of over 43 enhancement requests
  • Standalone installer for ooDialog 4.2.3 and several new classes and methods
  • Separate documentation for ooSQLite external library
  • Systemd support for Linux system and compliance with Linux Standard Base
  • Add trace information about method invocations
  • Additional method each for the String, Mutablebuffer, StackFrame, Queue and OrderedCollection classes
  • Additional methods for the Relation class, several sorting methods for OrderedCollections and methods for inserting and deleting elements for the Array class
Current stable version: 5.0.0[20] 2022-12-22
  • Inclusion of a total of 86 feature requests and 76 enhancement requests
  • Addition of several new keyword instructions
  • Addition of several new directives
  • Addition of AlarmNotification, Json, MessageNotification, RexxInfo, StringTable, StringTable and Validate classes and associated methods
  • Additional methods for Alarm, Class, Collection, Directory, Message, Method, MutableBuffer, Object, Package, Routine, String and RxFtp classes
  • Separate documentation for ooRexxUnit the unit testing framework for the ooRexx interpreter
  • Separate documentation for using ncurses for writing text-based user interfaces
  • Separate documentation for extending Rexx by using Rexx C++ application programming interfaces
  • Separate documentation explaining the release and build environment for ooRexx
Future release: 5.1.0 upcoming

Features[edit]

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[c] to the ANSI standard for the Rexx language (X3.274-1996, “Programming Language Rexx”[21]), 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.[22]

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

Notes[edit]

  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[6]
  3. ^ Object REXX and Open Object Rexx do not include all of the new features of ANSI standard Rexx.

References[edit]

  1. ^ "ooRexx (Open Object Rexx) - Browse /oorexx/5.0.0 at SourceForge.net".
  2. ^ René Jansen (2011-12-01). "7 Reasons that Rexx Still Matters". SmartBear blog. Retrieved 2014-02-02.
  3. ^ "NetRexx – Programming language derived from Java and Rexx". OS/2 EWS. IBM PC BBS. 1996. Retrieved 2014-01-24.
  4. ^ "IBM Object REXX for Windows V2R1 — Object-Oriented Programming for Beginners to Advanced Users", Announcement Letters, IBM, March 20, 2001, 201-063
  5. ^ "VM/SYSTEM PRODUCT RELEASE 3 (VM/SP RELEASE 3) 5664-167". Announcement letters. IBM. February 1, 1983. 283-018. Retrieved February 21, 2022.
  6. ^ "IBM TSO EXTENSIONS VERSION 2". Announcement letters. IBM. April 19, 1988. 288-191. Retrieved February 21, 2022.
  7. ^ "IBM Contributes Scripting Language to the Rexx Language Association, Encourages Innovation Around REXX Application Development". IBM. 2004-11-29. Retrieved 2009-06-25.
  8. ^ "RexxLA - Rexx Symposia". www.rexxla.org. Retrieved 2024-05-17.
  9. ^ "ooRexx (Open Object Rexx) - Browse /oorexx at SourceForge.net". sourceforge.net. Retrieved 2024-05-18.
  10. ^ "ooRexx (Open Object Rexx) - Browse /oorexx-docs at SourceForge.net". sourceforge.net. Retrieved 2024-05-18.
  11. ^ "ooRexx News". Sourceforge. Retrieved 18 May 2024.
  12. ^ Open Object Rexx Reference Version 3.0.0 Edition (PDF). RexxLA. 24 March 2005. Retrieved 18 May 2024.
  13. ^ "ooRexx News". Sourceforge. Retrieved 18 May 2024.
  14. ^ "ooRexx News". Sourceforge. Retrieved 18 May 2024.
  15. ^ "ooRexx News". Sourceforge. Retrieved 18 May 2024.
  16. ^ "ooRexx 4.0.0: Readme" (PDF). Retrieved 18 May 2024.
  17. ^ "ooRexx 4.1.0: ReleaseNotes". Retrieved 18 May 2024.
  18. ^ "ooSQLite: Readme". Retrieved 18 May 2024.
  19. ^ "ooRexx 4.2.0: Changes". Retrieved 18 May 2024.
  20. ^ "ooRexx 5.0.0: Changes". Retrieved 18 May 2024.
  21. ^ "X3.274-1996 American National Standards Institute for Programming Language Rexx" (PDF).
  22. ^ Where did SOM support go in 4.0.0?
  23. ^ Willis Boughton (2004). "SOM and Object REXX". EDM/2. Retrieved 2014-02-02.
  24. ^ "Accessing Workplace Shell Objects". Object REXX Reference. IBM.
  25. ^ "Does ArcaOS include REXX support?". Retrieved 2020-09-03.

External links[edit]