On Thu, 19 Mar 2009 01:11:23 -0400, Gerhard Postpischil wrote:

>Ian S. Worthington wrote:
>> I'm aware of the distinction, but have always felt that that's a fairly
>> reasonable working definition of "default", at least up until a reassignment.
>
>I suspect that he considers the language assignment of the
>upper-cased variable name to be the default, hence the distinction?
>
While that's true, it's the lesser concern.  Misusing "default"
to describe the universal assignment can mislead the reader to
believe that the construct merely defines a value to be used
for members otherwise undefined.  With this assumption, readers
of the following program:

/* Rexx */ signal on novalue;  /*
  Universal assignment is not a "default value".
*/
trace R

X.42 = 'specific '
say symbol( 'X.42' ) value( 'X.42' )

X.42 = 'universal'
say symbol( 'X.42' ) value( 'X.42' )

drop X.42
say symbol( 'X.42' ) value( 'X.42' )

... may expect incorrect results from the second and/or third
"say" instructions.  This is more likely for readers with
some programming experience, who are likely to make incorrect
and oversimplified assumptions about the implementation
mechanism.  Even IBM developers have fallen victim: at one
point an attempt to optimize storage management caused Rexx
to give incorrect results for the third "say" instruction.
This appears to have been repaired by APAR.

--gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to