Paul Gilmartin's point is an important one.
In assembly language the z/OS MVS 'R1 points to' convention can be exploited in
several different ways; and in REXX at least two different PARM-accessing
schemes are made available; but in, say. current PL/I the single scheme
embodied in
example: procedure(parm) options(main) ;
. . .
declare parm character(*) varying2 parameter
nonassignable ;
. . .
end example ;
is the only one supported, and in current COBOL things are even nastier.
The limitations and processing requirements implicit in the use of a particular
convention are also wondrously various. In PL/I the only (implicit) limitation
is that, since varying2 character strings are prefixed by a signed halfword
current-length indicator, no parm value may be more that 2^15 - 1 = 32767 bytes
in length. In C, which does not support halfword current-length prefixes, a
single-character null, x'00', that marks EOS for its strings of >>conceptually
unlimited<< length must be provided; and this means that PARM values of length
L bytes must be moved to newly allocated storage of length L + 1 bytes.
In a word, context is all; and, this being the case, context-free
generalizations are radically suspect.
John Gilmore Ashland, MA 01721-1817 USA
_________________________________________________________________
Hotmail® has ever-growing storage! Don’t worry about storage limits.
http://windowslive.com/Tutorial/Hotmail/Storage?ocid=TXT_TAGLM_WL_HM_Tutorial_Storage_062009
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html