🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #1786

Re: Answers, Chapter 2: to point or not to point

#1786
From: Jim Giles
Date: Mon, 22 Oct 1990 22:50
52 lines
3186 bytes
From article <26692@megaron.cs.arizona.edu>, by gudeman@cs.arizona.edu (David Gudeman):
> [...]
> You should qualify this as "the advantage of the high-level structures
> I have been discussing".  High-level structures in general are no
> easier to implement efficiently --and usually a good deal harder--
> than low-level structures.  For example run-time type checking,
> generalized lookup tables, pattern matching, unification, term
> rewriting, and automatic storage management are all much higher level
> than the features you have been discussing.

Fair enough.  Too be sure, on of my criteria for selecting features
is the knowledge of an efficient implementation that has been around
long enough to be solidly reliable.  All the features I've mentioned
fit this criterion - or, like deliberate aliasing, are sometimes
necessary even if inefficient.  However, the less efficient modes
are deliberately _not_ the default ones.

As for the higher-level features you mentioned: when the technology
matures, I'm sure that a number of them will become efficient and
reliable.  When that happens, I'm sure that they too will generally
be more efficiently implemented automatically by the compiler than
by all but the most adept programmers.  And even those _most_ adept
will still prefer to use the high-level features except when absolute
efficiency is the _only_ criterion for the program.  Other than that
the ease of maintenance, legibility, or the speed at which the code
is available and fully debugged will almost certainly be the overriding
factors.

> In fact I wouldn't even use the term "high-level" to qualify most of
> the things you have discussed.  I know it is non-standard, but the
> terminology for classifying data structures has not kept up with rest
> of the field.  I'd call most of your suggestions medium-level.

Again, fair enough.  The seven data structures I posted are copied
almost exactly from C.A.R. Hoare's chapter in "Structured Programming",
which was published in 1972.  Again: a basic criterion was reliability.
Old features have a longer track record and are more likely to meet
the criterion.  This, by the way, was the criterion Hoare applied
to the selection of features as well - 18 years ago!

The 'new' features that I've mentioned aren't really new either.  The
'aliased' attribute, for example, is just _exactly_ the same semantic
object as Pascal pointers - the difference is mainly syntactic (plus
the fact that aliasing is quite a lot more constrained than Pascal
pointers allow - aliasing is an attribute of specific collections of
variables and not a property of the data type).

However, nomenclature aside, these features are clearly much higher
level than pointers: the lowest level data structuring tool above the
bit.

J. Giles
Technical Details
Message-ID: <65610@lanl.gov>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!cs.utexas.edu!yale!cmcl2!lanl!jlg
References: <26692@megaron.cs.arizona.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!cs.utexas.edu!yale!cmcl2!lanl!jlg
From: jlg@lanl.gov (Jim Giles)
Newsgroups: comp.lang.misc
Subject: Re: Answers, Chapter 2: to point or not to point
Message-ID: <65610@lanl.gov>
Date: 22 Oct 90 22:50:54 GMT
References: <26692@megaron.cs.arizona.edu>
Organization: Los Alamos Natl Lab, Los Alamos, N.M.
Lines: 52