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

Reply via email to