(j3.2006) F08/0068, was Re: Interp letter ballot #25

Malcolm Cohen malcolm
Wed May 16 02:58:37 EDT 2012

Van Snyder writes:
>---  -N-  F08/0068   Pointer association and extended type arrays
>            "declared type part of that target" is ambiguous.

Well, "a declared type part of that target" might be ambiguous, but it says "the 
declared type part of that target" and this cannot be ambiguous.

>  "Declared
>            type" of what?  (Also see F08/0069.)  The target or the
>            pointer?

This is "a pointer actual argument that is pointer associated with a target", so 
it can be nothing other than the declared type of the pointer actual argument. 
Roughly speaking, Declared Type is a concept that applies to names and 
expressions, and the target does not appear here (except indirectly via pointer 
association), so the declared type in question must be that of the pointer.

>  Does "part" include the possibility of a component
>            having the same declared type (whatever that means)?

No.  That would be "a component with the same type as the declared type of the 
actual argument".  It is not "the declared type part of the actual argument".

>  Although
>            substantially more wordy, needs to specify that the pointer
>            becomes associated with the actual argument if the dynamic
>            type of the actual argument is the same as the declared type
>            of the pointer, or with the ancestor component of the actual
>            argument that has the same type as the declared type of the
>            pointer.

I do not agree that there is any ambiguity.  We could put in lots more words, 
but apart from extra chances to get it wrong, and more ink, that would achieve 

I do not see any other way of understanding "the declared type part of the 
target of the pointer".  Saying it might be something else simply does not make 
sense (one would reach an immediate contradiction on grounds of uniqueness just 
for starters), so it cannot mean anything else.

>  If "ancestor component" were reflexive, the
>            circumlocution would not be needed.

It's not needed now.

Or if it is just that it is time to wish we'd done something differently, can I 
put in my "there are lots of interpretations we wouldn't need if we'd not put in 
finalisation, defined i/o, and parameterised derived types"?  Not to mention 
"lots of compiler bugs we wouldn't have to fight with if we'd not put in etc."!

................................Malcolm Cohen, Nihon NAG, Tokyo. 

More information about the J3 mailing list