[comp.lang.misc] Arrows as pointers

Chris.Holt@newcastle.ac.uk (Chris Holt) (11/12/90)

David Gudeman, responding to Piercarlo Grandi, notes that a natural
way to think about many data structures is in terms of geometric
objects connected by arrows:

>                 ...   Lists and trees are mental structures that
>humans use to visualize things.  You can call them relations, you can
>"implement" them mathematically as relations, but that does not change
>the fact that they are in fact fundamental forms of visualization.
>And when we draw them we certainly do not draw specific encodings.
>In a list, X follows Y because our mental image of the list has X
>following Y.  In a tree, there is an arrow from X to Y because in our
>mental image X is related to Y by the relationship that the arrow
>represents.

Being involved in visual languages, this brings joy to my heart :-).
However, he uses this as a justification for having pointers as
first class objects in a programming language.  This depends upon
a particular interpretation of the arrows that does not seem to
me to be either necessary or desirable.

It's a bit like playing snakes and ladders, where if you land on
a snake it takes another turn (dereferencing) to slide down it, rather
than sliding straight away.  The same structure is involved, but
having to explicitly distinguish between what the snake is and what
it does makes the game harder to play.
-----------------------------------------------------------------------------
 Chris.Holt@newcastle.ac.uk      Computing Lab, U of Newcastle upon Tyne, UK
-----------------------------------------------------------------------------
 "He either fears his fate too much, or his programming tools are small..."