🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #2020

Re: C's sins of commission

#2020
From: David Gudeman
Date: Mon, 12 Nov 1990 01:54
49 lines
2758 bytes
In article  <PCG.90Nov10155309@odin.cs.aber.ac.uk> Piercarlo Grandi writes:
]
]Pah. pointers are just a thin veneer on the underlying implementation.
]The thing you want to implement is a *relationship*; a pointer is a way
] to implement a relationship

Pah.  Pointers are a direct representation of a fundamental way to
visualize relations.  The thing I want to implement is a relationship
that I am visualizing as a pointer.

You are abusing the term "implement".  The correct way to say this is
that a pointer is one way to _represent_ or _visualize_ a
relationship.  "Implement", implies a machine implementation, and it
is just false to suggest that people would not visualize pointers if
they were not implementing things on machines.  The concept of one
object referencing another pre-dates computers.

]Ah no, this cannot pass. Lists and trees are *implementations*, and when
]you draw them you draw specific encodings of such implementations.

No, this cannot pass.  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.

]The way *I* think about data structures as typed mappings over entities
](entity-category-relationship!),

I think you visualize data structures geometrically like everyone
else.  Then you mentally convert these natural visualizations into
unatural mathematical abstractions and pretend that the abstraction is
the original.

There is some justification for this in mathematics, in the case that
mathematicians are trying to prove that the structures they visualize
are well-founded.  But once a certain class of structures and
operations on those structures is known to be well-founded, there is
no reason to keep "implementing" them in terms of baroque mathematical
abstractions.
-- 
					David Gudeman
Department of Computer Science
The University of Arizona        gudeman@cs.arizona.edu
Tucson, AZ 85721                 noao!arizona!gudeman
Technical Details
Message-ID: <27376@megaron.cs.arizona.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!elroy.jpl.nasa.gov!ncar!noao!arizona!gudeman

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!elroy.jpl.nasa.gov!ncar!noao!arizona!gudeman
From: gudeman@cs.arizona.edu (David Gudeman)
Newsgroups: comp.lang.misc
Subject: Re: C's sins of commission
Message-ID: <27376@megaron.cs.arizona.edu>
Date: 12 Nov 90 01:54:21 GMT
Organization: U of Arizona CS Dept, Tucson
Lines: 49