Object REXX

Last updated
Object REXX
Rexx3 orig size transparent.gif
Paradigm Object-oriented (class-based)
Designed by Simon C. Nash (IBM)
First appeared1988;36 years ago (1988)
Stable release
5.0.0 [1]   OOjs UI icon edit-ltr-progressive.svg / 10 May 2023;10 months ago (10 May 2023)
Platform IA-32, x86-64, ARM, s390x
OS Cross-platform: Linux, Microsoft Windows, macOS, Solaris, AIX, OS/2
License CPL 1.0, GPLv2
Filename extensions .rxs, .rex, .rexx, .cls
Website www.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.

Contents

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 [4] 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 [5] 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. [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. 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” [8] ), 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. [9]

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

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

Related Research Articles

<span class="mw-page-title-main">OS/2</span> Operating system from IBM

OS/2 is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position OS/2 relative to Microsoft's new Windows 3.1 operating environment, the two companies severed the relationship in 1992 and OS/2 development fell to IBM exclusively. The name stands for "Operating System/2", because it was introduced as part of the same generation change release as IBM's "Personal System/2 (PS/2)" line of second-generation personal computers. The first version of OS/2 was released in December 1987 and newer versions were released until December 2001.

The Portable Operating System Interface is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system and user-level application programming interfaces (APIs), along with command line shells and utility interfaces, for software compatibility (portability) with variants of Unix and other operating systems. POSIX is also a trademark of the IEEE. POSIX is intended to be used by both application and system developers.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">IBM Db2</span> Relational model database server

Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON and XML. The brand name was originally styled as DB2 until 2017, when it changed to its present form.

<span class="mw-page-title-main">Conversational Monitor System</span> Operating system

The Conversational Monitor System is a simple interactive single-user operating system. CMS was originally developed as part of IBM's CP/CMS operating system, which went into production use in 1967. CMS is part of IBM's VM family, which runs on IBM mainframe computers. VM was first announced in 1972, and is still in use today as z/VM.

An object-oriented operating system is an operating system that is designed, structured, and operated using object-oriented programming principles.

<span class="mw-page-title-main">Windows Script Host</span> Automation technology for Windows

The Microsoft Windows Script Host (WSH) is an automation technology for Microsoft Windows operating systems that provides scripting abilities comparable to batch files, but with a wider range of supported features. This tool was first provided on Windows 95 after Build 950a on the installation discs as an optional installation configurable and installable by means of the Control Panel, and then a standard component of Windows 98 and subsequent and Windows NT 4.0 Build 1381 and by means of Service Pack 4. The WSH is also a means of automation for Internet Explorer via the installed WSH engines from IE Version 3.0 onwards; at this time VBScript became means of automation for Microsoft Outlook 97. The WSH is also an optional install provided with a VBScript and JScript engine for Windows CE 3.0 and following and some third-party engines including Rexx and other forms of Basic are also available.

<span class="mw-page-title-main">Configuration file</span> Software file used to configure the initial settings for a computer program

In computing, configuration files are files used to configure the parameters and initial settings for some computer programs. They are used for user applications, server processes and operating system settings.

<span class="mw-page-title-main">Workplace Shell</span>

The Workplace Shell (WPS) is an object-oriented desktop shell produced by IBM's Boca Raton development lab for OS/2 2.0. It is based on Common User Access and made a radical shift away from the Program Manager type interface that earlier versions of OS/2 shared with Windows 3.x or the application-oriented WIMP interface of the Apple Macintosh. The Workplace Shell was also used in OS/2 Warp 3 and Warp 4, and the OS/2-based operating systems eComStation and ArcaOS.

Common User Access (CUA) is a standard for user interfaces to operating systems and computer programs. It was developed by IBM and first published in 1987 as part of their Systems Application Architecture. Used originally in the MVS/ESA, VM/CMS, OS/400, OS/2 and Microsoft Windows operating systems, parts of the CUA standard are now implemented in programs for other operating systems, including variants of Unix. It is also used by Java AWT and Swing.

<span class="mw-page-title-main">IBM System Object Model</span> Programming framework

In computing, the System Object Model (SOM) is an object-oriented shared library system developed by IBM. DSOM, a distributed version based on CORBA, allowed objects on different computers to communicate.

<span class="mw-page-title-main">Workplace OS</span> Defunct 1990s operating system

Workplace OS is IBM's ultimate operating system prototype of the 1990s. It is the product of an exploratory research program in 1991 which yielded a design called the Grand Unifying Theory of Systems (GUTS), proposing to unify the world's systems as generalized personalities cohabitating concurrently upon a universally sophisticated platform of object-oriented frameworks upon one microkernel. Developed in collaboration with Taligent and its Pink operating system imported from Apple via the AIM alliance, the ambitious Workplace OS was intended to improve software portability and maintenance costs by aggressively recruiting all operating system vendors to convert their products into Workplace OS personalities. In 1995, IBM reported that "Nearly 20 corporations, universities, and research institutes worldwide have licensed the microkernel, laying the foundation for a completely open microkernel standard." At the core of IBM's new unified strategic direction for the entire company, the project was intended also as a bellwether toward PowerPC hardware platforms, to compete with the Wintel duopoly.

<span class="mw-page-title-main">XEDIT</span>

XEDIT is a visual editor for VM/CMS using block mode IBM 3270 terminals.

NetRexx is an open source, originally IBM's, variant of the REXX programming language to run on the Java virtual machine. It supports a classic REXX syntax, with no reserved keywords, along with considerable additions to support object-oriented programming in a manner compatible with Java's object model, yet can be used as both a compiled and an interpreted language, with an option of using only data types native to the JVM or the NetRexx runtime package. The latter offers the standard Rexx data type that combines string processing with unlimited precision decimal arithmetic.

<span class="mw-page-title-main">Scripting language</span> Programming language for run-time events

A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled.

<span class="mw-page-title-main">ZOC (software)</span>

ZOC is a popular computer-based terminal emulator and Telnet software client for the Microsoft Windows and Apple Macintosh macOS operating systems that supports telnet, modem, SSH 1 and 2, ISDN, serial, TAPI, Rlogin and other means of communication. Its terminal emulator supports Xterm emulation with full colors, meta-keys and local printing, VT102, VT220 and several types of ANSI as well as Wyse, TVI, TN3270, and Sun's CDE. It supports full keyboard remapping, scripting in REXX and other languages, and support for named pipes.

<span class="mw-page-title-main">SecureCRT</span>

SecureCRT is a commercial SSH and Telnet client and terminal emulator by VanDyke Software. Originally a Windows product, VanDyke later added a Mac OS X version in 2010 with release v6.6 and a Linux version in 2011 with release v6.7.

<span class="mw-page-title-main">Rexx</span> Command/scripting/programming language

Rexx is a programming language that can be interpreted or compiled. It was developed at IBM by Mike Cowlishaw. It is a structured, high-level programming language designed for ease of learning and reading. Proprietary and open source Rexx interpreters exist for a wide range of computing platforms; compilers exist for IBM mainframe computers.

References

  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. "X3.274-1996 American National Standards Institute for Programming Language Rexx" (PDF).
  9. Where did SOM support go in 4.0.0?
  10. Willis Boughton (2004). "SOM and Object REXX". EDM/2. Retrieved 2014-02-02.
  11. "Accessing Workplace Shell Objects". Object REXX Reference. IBM.
  12. "Does ArcaOS include REXX support?" . Retrieved 2020-09-03.