Path: utzoo!utgpu!water!watmath!clyde!att!rutgers!mailrus!cornell!uw-beaver!teknowledge-vaxc!sri-unix!quintus!ok
From: ok@quintus.uucp (Richard A. O'Keefe)
Newsgroups: comp.lang.fortran
Subject: Re: Data types, pointers, etc.
Message-ID: <481@quintus.UUCP>
Date: 27 Sep 88 19:45:22 GMT
References: <1475@pur-phy>
Sender: news@quintus.UUCP
Reply-To: ok@quintus.UUCP (Richard A. O'Keefe)
Organization: Quintus Computer Systems, Inc.
Lines: 20

In article <1475@pur-phy> cca@pur-phy (Charles C. Allen) writes:
>In this discussion of pointers and data structures, I hope that people
>will occasionally pause to take a somewhat broader view of things      ...
>Languages do exist that have the sort of structures people have been
>talking about, without resorting to pointers and all their
>difficulties.  Smalltalk, for example,					...

It is worth noting that most such languages notionally make _everything_
a pointer.  (SETL is an exception.)  Smalltalk-80, for example, has that
amazing operation "become:".  The distinction between pointer-based and
value-based views come up when you consider assignment.  Simula 67, for
example, had two assignment operators:
	Lhs := Rhs;	!copy the value of Rhs onto the storage of Lhs;
	Lhs :- Rhs;	!make Lhs point to whatever Rhs points to;

If I understand the Fortran 8X ALLOCATE stuff correctly, since array
assignment copies the contents of the source to the destination, and
since no methods are provided for copying the pointer, it is providing
a value-based model rather than a pointer-based one.  But the allocation
status of the hidden pointer variable is still important.