Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!yale!cmcl2!lanl!jlg From: jlg@lanl.gov (Jim Giles) Newsgroups: comp.lang.fortran Subject: Re: dpANS Fortran 8x Message-ID: <13938@lanl.gov> Date: 14 Jun 89 23:35:39 GMT References: <143@unmvax.unm.edu> Distribution: usa Organization: Los Alamos National Laboratory Lines: 35 From article <143@unmvax.unm.edu>, by brainerd@unmvax.unm.edu (Walt Brainerd): >> I also have seen the June release of the standard. I see nothing that >> _requires_ pointers to be anything but an address with a type attribution. > > You did see something that requires it > as you convincingly point out in the next paragraph. > >> > ...] unless I am missing something, the following is legal: >> > >> > REAL, DIMENSION (100, 100), TARGET :: A >> > REAL, DIMENSION (100), POINTER :: P >> > . . . >> > P => A (50, :) ! P IS AN ALIAS FOR ROW 50 OF A >> >> In order to implement this, the pointer must actually be (what used to be >> called) a 'dope vector'. > > Exactly right! And the standard requires that this be implemented! Since Walt is on the committee (or was - I don't know his present status), I will assume he is right about the interpretation of the standard. I was only pointing out that the present proposal, as written, does _not_ give any _semantic_ interpretation for the above example. At least to my mind, a comment on a example statement does _not_ constitute an adequate definition of the semantics of a programming language feature. If they intend for a POINTER value to actually be an entire array descriptor or 'dope vector', then they should say so explicitly and fully describe what that means. Failure to do so indicates to me that the meaning of POINTER is not well defined. Of course, if POINTER is supposed to be defined as Walt claims, it isn't really a pointer. So it's misleading to people who know pointers from other languages. Furthermore, it needlessly complicates the semantics of pointers when they are used in more conventional roles (recursive data structures, for example).