Category:REXX: Difference between revisions
Content deleted Content added
m →External Links: added an URL to the English Wikipedia for REXX. |
m Extra comment |
||
(20 intermediate revisions by 2 users not shown) | |||
Line 1:
{{language
| LCT=yes
| exec=interpreted
| express=inferred
| gc=allowed (and in most versions of REXX, it is automatic, but garbage collection isn't mandated).
| safety=safe
| strength=strong
| standardized=yes
| compat=nominative
| checking=dynamic
| parampass=value
| untyped=yes
| intended=intended for general, application, algorithms, scripting, host/sub─system scripting/interfacing, data/text processing, programming as a human activity.
| goal=the REXX language is designed to make programming easier; to foster high quality programs by making writing them as simple and enjoyable as possible; designing each part of the language for people to use is more important than providing easy implementation; follows the principle of least astonishment [https://en.wikipedia.org/wiki/Principle_of_least_astonishment (POLA)]. }}
{{Wikipedia|REXX}}<br>
<cite>REXX (REstructured eXtended eXecutor) is an interpreted programming language which was developed at IBM. It is a structured high-level programming language which was designed to be both easy to learn and easy to read. Both proprietary and open source interpreters for REXX are available on a wide range of computing platforms, and compilers are available for IBM mainframes.</cite>
'''REXX''' is also spelled:
::* <big> <big>R</big>exx </big>
::* <big> <big>R</big><small>EXX </small> </big>
::::::: but the primary official spelling is '''REXX''' and is the spelling used here on Rosetta Code.
The '''REXX''' language was influenced by the computer programming languages: '''ALGOL, PL/I, EXEC,''' and '''EXEC 2.'''
Using Classic REXX closely resembles pseudo code and many languages like Basic or Julia. Experienced programmers should have no problem reading REXX code and translating it to other languages.<br>
Some items that might differ from what you are familiar with.<br>
* No data types, no declarations, everything is string.
* Exponentiation is designated by '**' thus x^2 = x**2.
* Integer division is designated by '%' thus 13%3 = 4.
* Modulo division (remainder) is designated by '//' thus 13//3 = 1 ('13 mod 3').
* Arrays (here called 'stems') are designated by something like 'stem.a.b. etc' (stem = name array; a, b etc any value; 'associative arrays').
* Precision is unlimited (default 9 digits), but you have to specify it yourself ('numeric digits nn').
<big><big>Versions of REXX:</big></big>
* '''[[wp:ARexx|ARexx]]''' is a classic REXX implementation (with extensions) for the AmigaOS, given in bundle since AmigaOS 2. (Regina REXX has specific support for the extended functions that were introduced in ARexx.) ARexx was written in 1987 by William S. Hawes.
* '''[[Brexx]]''' a classic REXX written by Vassilis N. Vlachoudis, it is free and it's open source and available under the GNU General Public License.
* '''[[CRX REXX]]''' (Compact REXX) is a classic REXX first written by Dr. Brian Marks.
* '''[[CTC REXX]]''' is a classic REXX that is bundled with PC/SPF and written by Command Technology Corporation, a license is required to use this product. This version of REXX can only be used under PC/SPF and it's panels. PC/SPF resembles the IBM program product SPF (which has other names and versions). The last version was published in 1996. CTC doesn't exist anymore.
* '''[[
* '''[[MVS/TSO REXX]]''' is IBM's implementation of classic REXX, a license is required to use the product as well as the operating system it runs under; '''MVS''' and '''TSO''' are used here as generic references.
* '''[[
* '''[[NetRexx|NetRexx]]''' is 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 run-time package. The syntax and object model of NetRexx differ from Object REXX and Open Object Rexx.
* '''[https://en.wikipedia.org/wiki/Object_REXX Object REXX]''' is/was an object-oriented scripting language initially produced by IBM for OS/2. It is a follow-on to and a significant extension of the "Classic Rexx" language originally created for the CMS component of VM/SP and later ported to MVS, OS/2 and PC DOS. OS/2 version of IBM Object REXX is deeply integrated with SOM. On October 12, 2004, IBM released Object REXX as open source software, giving rise to <u>O</u>pen <u>O</u>bject <u>Rexx</u> (ooRexx).
* '''[[ooRexx|ooRexx]]''' (Open Object Rexx) is an implementation of [[wp:Object REXX|Object REXX]], which is REXX with OO features (some REXX programs are compatible).
* '''[[OS/2 REXX]]''' is a classic REXX that is an IBM implementation of classic REXX, a license is required to use this product as well as the operating system it runs under.
* '''[[OS/400 REXX]]''' is an IBM implementation of classic REXX, a license is required to use this product as well as the operating system it runs under.
* '''[[PC/REXX]]''' is the first classic REXX implemented outside of IBM mainframes, intended for IBM DOS and MS DOS. Written by Mansfield Software Group, Inc., REXX was bundled with KEDIT, a license is required to use this product.
* '''[[Personal REXX]]''' is a classic REXX that is intended for IBM DOS and MS DOS, written by Charles Daney of Quercus Systems, a license is required to use this product. It is also known as REXX/Personal.
* '''Portable REXX''' (see the '''R4 REXX''' entry, below).
* '''[[
* '''[[
* '''[[
* '''REXX/Personal''' is another name for '''Personal REXX''' (see above).
* '''[[ROO oo-REXX]]''' an object-oriented REXX developed by Keith Watts of Kilowatt Software, Inc. It can be downloaded freely. '''ROO''' is also known as '''ROO!'''. According to Rexxinfo.org, Roo! is out of maintenance.
* '''[[R4 REXX]]''' a classic REXX developed by Keith Watts of Kilowatt Software, Inc. It was also known as '''Portable REXX'''. It can be downloaded freely. According to Rexxinfo.org, R4 is out of maintenance.
* '''[[T/REXX, a REXX compiler for CMS]]''' is an implementation of classic REXX written by Leigh Lundin and Mark Woodruff (according to Wikipedia).
* '''[[VM/CMS REXX]]''' is an IBM implementation of classic REXX that was first implemented (for general use) in the early 1980s. A license is required to use this product as well as the operating system that it runs under. This was the original implementation of REXX written (circa 1979) by Mike Cowlishaw of IBM.
* '''[[VM/CMS REXX compiler]]''' is an IBM implementation of classic REXX, a license is required to use this product as well as the operating system it runs under.
<br>[Most of the entries were entered mostly from memory and apologies are offered for not knowing more about what wording should be used; the IBM operating systems or Program Products that run REXX are numerous and varied. Their complete (official) names would fill a pageful or two. Some of the REXXes are no longer sold nor available for downloading or purchase, others are no longer maintained. Naming of names is being avoided (especially those licensed products for sale), and it is hoped that this is seen that no products nor vendors are being endorsed, appraised, or critiqued.] -- [[User:Gerard Schildberger|Gerard Schildberger]] 09:28, 1 July 2012 (UTC)
===External Links===
* [https://en.wikipedia.org/wiki/
* [https://github.com/vlachoudis/brexx Brexx interpreter]
* [http://www.oorexx.org/ Open Object Rexx - www.oorexx.org]
Line 80 ⟶ 131:
* [http://www.rexxinfo.org/html/rexxinfo1.html#Rexx-Manuals {many references to REXX manuals}]
== Rosetta Code tasks not implemented in REXX ==
[[Reports:Tasks_not_implemented_in_REXX]]
|