🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #1887

Re: Answers, Chapter 1: TeX

#1887
From: David Gudeman
Date: Fri, 02 Nov 1990 05:47
55 lines
3087 bytes
In article  <4569@lanl.gov> jlg@lanl.gov (Jim Giles) writes:
]The 'soft' words (like 'legible') might be considered opinion, the
]statement that pointers provide no more power is a statement of _fact_.

Not until you define "power".

]... A C style pointer ... is similar (but not identical
]to) the passing of a one dimensional array which is indexed by
]integers.  But, the array differs by requiring its bounds to be
]passed and by its ability to be multidimensional and by the fact
]that it is _not_ aliased or overlapping with any other argument or
]global variable without explicit _local_ declaration of the fact.

Well then you are really making three distinct arguments and
confusing your readers by merging them into one, aided and abetted
by a specialized terminology that the net public in general do not
share.  Your arguments seem to be (I'll assume everyone agrees that
arrays are multi-dimensional):

(1) Arrays should be bounds checked.

(2) Aliasing of data structures should not be allowed unless made
explicit by declarations.

(3) Pointers should not have a dereferencing operation.

To take the last point first, you keep saying that you want to
eliminate pointers, but you also keep saying that you would replace
them by something that is semantically equivalent.  All you have done
is replaced the notion of an reference-valued object with a
co-reference, replaced pointer creation with a special assignment, and
removed the need for a dereference operation.  You haven't eliminated
pointers, you have just changed them to something similar.

As to the other points, you keep saying that "arrays have property X
and pointers don't", when what you really mean is that bounds-checked
arrays with guaranteed no-aliasing have property X and that raw
machine addresses don't have property X.  If you wouldn't keep
refering to raw machine addresses as pointers there would be a lot
less confusion.  There is no reason why pointers in some language
could not be defined to be bounded and unaliased.  If pointers were
defined that way, then pointers would have property X.  Property X
here mostly refers to your assertions about the greater optimizability
and safety of arrays over pointers.  (Your example depended on the
assumption that the C pointers were not bounded and that arbitrary
aliasing is possible.)

To make the situation even more bemusing, your version of pointers
without dereferencing constitutes a direct counter-example to what you
claim is impossible for pointers.
-- 
					David Gudeman
Department of Computer Science
The University of Arizona        gudeman@cs.arizona.edu
Tucson, AZ 85721                 noao!arizona!gudeman
Technical Details
Message-ID: <27094@megaron.cs.arizona.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!ucsd!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!swrinde!ucsd!usc!elroy.jpl.nasa.gov!ncar!noao!arizona!gudeman
From: gudeman@cs.arizona.edu (David Gudeman)
Newsgroups: comp.lang.misc
Subject: Re: Answers, Chapter 1: TeX
Message-ID: <27094@megaron.cs.arizona.edu>
Date: 2 Nov 90 05:47:10 GMT
Organization: U of Arizona CS Dept, Tucson
Lines: 55