🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #1835

Re: Re^4: Some things that pointer-less languages can't do efficiently

#1835
From: Peter da Silva
Date: Fri, 26 Oct 1990 20:20
71 lines
3643 bytes
In article <420@data.UUCP>, kend@data.UUCP (Ken Dickey) writes:
> Paraphrase of Peter da Silva: "On what statistical evidence are you
> bashing pointers as source language constructs?"

> "Pointers are the gotos of the 90's" {I forget who said that.  Alan Kay?}

That's an evocative statement, considering that folks on both sides of
the fence can... with some justice... claim it as their own. But let's
not add a goto war to the current pointer war...

> There was a study done at Xerox PARC on large project development that
> showed something over half the development time was spent with storage
> management issues.

It should also be considered that the big projects done at Xerox during
the '70s are things like Interlisp, Smalltalk, the Star office system,
and other things that would tend to push the limits of storage
management. Not exactly typical problems, and right at the bleeding edge
of technology at the time.

> '(3) is the result of (cons 3 '()) or (cons '3 '()), this is not the
> same as three [as defined in C as "int *three = 3;"].

[ um, that's a type mismatch. Do you mean "int *three = { 3 };"? ]

You're mixing symbols and values. three is a variable of type "pointer
to integer" containing a pointer to an integer cell containing the
value 3. In lisp:

(setq three '(3)).

> Ah, the heart of the issue! It would be interesting to do address
> arithmetic on a token!  You are definitely going against the
> literature here.  I think that you should look up th definition of
> "pointer" in a few texts.

Not all languages with pointers allow arithmetic on them. And you never
need to do arithmetic on a pointer in C... it is merely convenient. This
has nothing to do with the definition of a pointer.

> By "token" (a syntax concept), I presume you mean "identifier" (a
> language concept).

No, I mean a token. An opaque object. The term is used in other contexts
than compiler design... consider its use in networking. The rest of your
paragraph is complete gibberish, I'm afraid, because it's based on a
misconception.

> >*Exactly*, just as arbitrary pointer operations are dangerous. And for
> >exactly the same reasons.

> N.b.: this is basically an argument against assignment, not pointers.

Nonsense. If a value can't be aliased assignment isn't a problem. And all
aliasing problems come down to pointers at the bottom.

What you're arguing about here isn't whether one should have pointers
at all, merely how restricted the operations on pointers should be. And
that's a horse of a different color.

I use C for pragmatic reasons. It's the only language that's powerful
enough for most of the stuff I do that's also widely available and has
a good enough standard library. You just can't *get* good Pascal, Modula,
Smalltalk, what-have-you implementations on most of the machines I have
to work with. I'm not going to claim it's even a very good langauge. But
it's there, and works, everywhere I need it to be. You want to help improve
things... write some compilers and sell them cheaply.
-- 
Peter da Silva.   `-_-'
+1 713 274 5180.   'U`
peter@ferranti.com
Technical Details
Message-ID: <ZYO6VY4@xds13.ferranti.com>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!wuarchive!zaphod.mps.ohio-state.edu!lavaca.uh.edu!menudo.uh.edu!sugar!ficc!peter
References: <26739:Oct1023:44:2690@kramden.acf.nyu.edu> <65450@lanl.gov> <420@data.UUCP>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!wuarchive!zaphod.mps.ohio-state.edu!lavaca.uh.edu!menudo.uh.edu!sugar!ficc!peter
From: peter@ficc.ferranti.com (Peter da Silva)
Newsgroups: comp.lang.misc
Subject: Re: Re^4: Some things that pointer-less languages can't do efficiently
Message-ID: <ZYO6VY4@xds13.ferranti.com>
Date: 26 Oct 90 20:20:07 GMT
References: <26739:Oct1023:44:2690@kramden.acf.nyu.edu> <65450@lanl.gov> <420@data.UUCP>
Organization: Xenix Support, FICC
Lines: 67