* Aahz:
In article <hl6ilk$f7...@news.eternal-september.org>,
Alf P. Steinbach <al...@start.no> wrote:
My original statement, with reference to the Java language spec,
didn't say much more about the language than that it has assignable
references.

Assuming this is what you're referring to:

    Python passes pointers by value, just as e.g. Java does.

Then you are simply, completely, totally, and absolutely wrong.  Period.
Regardless of how CPython manages its state internally, Python as a
programming language does not have pointers.

The next paragraph was about the meaning of "pointer" in that first paragraph, referring to the Java language specification for the particular meaning here, namely a reference. Note: I did not refer to CPython, C, Pascal or whatever (but you mention CPython) for a meaning of "pointer". Instead I referred to the Java language specification for that meaning, where it's pretty clear: reference.

So if you don't like the terminology, you can rephrase with perhaps more palatable terms:

  Python uses pass by sharing.
  References to objects are copied, the objects themselves are not copied.
  See <url: http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_sharing>

If you go to that URL, which isn't auhoritative but good enough, you find that

  "identical semantics in other languages such as Java and Visual Basic"

Hence, your point is only a matter of terminology. The semantics /can/ be described using the term "pointer" (or for that matter the term "thingamajic"), when that term is suitably defined, and it /is/ described using that word for some languages. The language doesn't matter for the concept of pass by sharing.

Hence, the terminological issue doesn't invalidate the description, as long as the terminology is clearly defined, as I did with ref to the Java lang spec.

As you can see proper terminology reduces the size of explanation considerably, but as I see it that's not a big deal as long as the description is still /reasonably/ short. It does become a concern when the description runs to many pages of text. A simple thing should IMHO be simply described.

But I think, as I've already stated several times up-thread, that "pointer" is a term best avoided for explanations within the Python community, even with a reference to a particular definition/usage, making the more verbose version in terms of "references" preferable for Python -- don't you agree?


Cheers,

- Alf

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to