Rosetta Code:Village Pump/Dialects: Difference between revisions

m
→‎REXX and o-o REXXes: corrected a misspelling. -- ~~~~
(added comments on classic REXX versus object-orientated REXXes. -- ~~~~)
m (→‎REXX and o-o REXXes: corrected a misspelling. -- ~~~~)
 
(9 intermediate revisions by 2 users not shown)
Line 53:
 
Some 'features' of the original Rexx were removed '''in this grandchild (ooRexx)'''
:- Use of @#$¢ as or in symbols
:- a= as a short form ofor a=''""
:- Multi-line strings (extending a string over line boundaries')
:- Bifs: externals, find, index, justify, linesize
- stream I/O (present in CMS but only optional on TSO (not on 'mine')
:- the Upper instruction
(on TSO I have to use EXECIO)
:- /= and /== as alternatives to \= or \== (see characters below)
- Bifs: externals, find, index, justify, linesize
 
- the Upper instruction
- streamStream I/O (present in CMS butis only optional on TSO (not on 'mine')
- /= and /== as alternatives to \= or \== (see characters below)
(on TSO I have to use EXECIO)
 
Other features were introduced '''with the ANSII standard''' created
by a committee comprising Rexx implementers from IBM (notably the
original author, Mike Cowlishaw) and from elsewhere:
 
:- Date and Time conversion
:- Parse Caseless
:- Address With (not available in ooRexx)
:- Bifs: changestr, countstr, qualify
 
A feature introduced with ooRexx (and Regina unless you opt out, see below):
 
:- -- as line comment (instead of /* ... */)
 
Regina 3.4 introduced the single-line comment feature,
Regina 3.5 wasn't configurable concerning single-line comments,
and it wasn't until
Regina 3.6 that allowed the noSingle_line_comments
environmental variable. --- Gerard Schildberger
 
Avoiding all of the language elements mentioned above makes a program
portable across all Rexxes (including the two Rexxes I am using and therefore interested in).
Using additional features introduced with other implementations
(notably directives in ooRexx) will also prohibit program porting.
 
Characters:
:Originally ¬ was definesdefined as not-character and /= was accepted for not equal.
:This was later changed to the backslash on PCs and ^ on the host.
 
:On my German TSO I cannot use | and \ due to code page differencesdiff:erences.
:My Rexx sources on TSO use therefore ! and ^, respectively.
:(I avoid the ^ by using lt-gt instead of ^=)
 
::For a Brief History of Rexx see
:: http://www.speleotrove.com/rexxhist/rexxhistory.html
::For a rather complete list of Rexx implementations see
:: http://www.speleotrove.com/rexxhist/rexxplat.html
::(both courtesy Mike Cowlishaw)
--[[User:Walterpachl|Walterpachl]] 20:23, 8 July 2012 (UTC)
 
Regina 3.4 introduced the single-line comment feature,
Regina 3.5 wasn't configurable concerning single-line comments,
and it wasn't until
Regina 3.6 that allowed the noSingle_line_comments
environmental variable. --- Gerard Schildberger
 
===REXX and o-o REXXes===
Line 126 ⟶ 127:
-----
 
Classic REXX is not object-orientated REXX. To put them under an o-o umbrella would be a disservice to both languages. A classic REXX entered under the ooRexx language would (to me) imply that it would work using ooRexx, and I have no way of testing/verifying that. My main interest is in classic REXX and have no need for object-oriented features. Again: hammer, fly. I test all of my classic REXX program examples (unless noted otherwise) under three classic REXXes: PersonnalPersonal/REXX, Regina (sometimes more than one version when there is a perculiar release-based feature), and R4. [Sometimes I say PC/REXX when I meant to say PersonnalPersonal REXX --- they have the same pedigree.]
 
I don't know what you mean by ''plain'' REXX; the point under discussion is classic REXX vs. the o-o (object-orientated) REXXes.
Line 207 ⟶ 208:
So the major hangup here is the use of assignment without righthandside
and second comes the use of symbols (symbol characters that ooRexx does not support.
Fixing these would be easy and allow for stating that "all Rexx programs shown here can run under ooRexx". A statement I would love to make.
A statement I would love to make and you don't.
ooRexx IS a grandchild of original Rexx because it was raised in the IBM family.
Now it has found a new home in RexxLA and is open source, free, stable and top quality.
Line 242:
-----
 
Er, no. The example version 2 for REXX was a straight copy of version 1's functionality (but with the superfloussuperfluous statements and dead code removed), and as such, mimicked the inability to handle the Roman numberal '''IIXX''' (and others of this type). This means that version 2 has the same functionality as version 1. I had added a comment to that effect (about the inability concerning version 1 and its cousin, version 2), but it was deleted by someone else.
 
This also implies that the NetRexx version has the same problem, as the REXX version (as stated) was taken/copied/transcribed from NetRexx), but I can't verify if the NetRexx version as I don't have access to the NetRexx language. Most likely, other examples have the same inability.
Line 266:
 
-----
Again a long story not addressing the points that I made:
You changed the program to the worse (for ooRexx!) by changing a reasonable name to a
characted not supported by ooRexx.
I had the time and the inclination to test (some of) your programs with ooRexx
and have shown the results.
SCRSIZE: of course you said that. My point: All 40 programs work on ooRexx unchanged or
with minimal changes @->a #->n $->d except for this ONE.
It's your choice to insist on using @ and # and $ forever.
And I end the analysis now.
--[[User:Walterpachl|Walterpachl]] 06:49, 11 July 2012 (UTC)