From: Steven D'Aprano on 13 Feb 2010 19:43
On Sat, 13 Feb 2010 07:59:42 -0800, Michael Sparks wrote:
> Now, if I define a language, this has 3 main parts:
> * Syntax
> * Semantics
> * Implementation
Michael, that is remarkable. Excellent work, thank you!
From: Alf P. Steinbach on 13 Feb 2010 19:50
* Steve Holden:
> Alf P. Steinbach wrote:
>> * Michael Sparks:
>> [Due to the appearance of reasoned discussion (it's not practical to read it all!)
>>> Therefore to say "in reality the implementation will be passing a
>>> reference or pointer" is invalid. There is after all at least one
>>> implementation that does not rely on such machine oriented language
>> I'm sorry, but see above: in itself it's just yet another a fallacy.
>> And as an argument in a debate with me it's misrepresenting.
> I see we are still all out of step with you.
Why did you snip the short argument?
> If it's a fallacy then I'd
> like to see a reasoned logical explanation of its fallaciousness.
Oh, you snipped it so that you didn't have to present it to readers.
That's dishonest, Steve Holden.
> Now let's move to the implementation aspects.
> Python as a language is implemented in many languages. One of these
> is C. There are compilers to C (pypy), C++ (shedskin), for the JVM
> (Jython) and .net (Ironpython).
> There is also an executable operation semantics for python,
> which can be found here:
> This set of operational semantics is written in Haskell.
> Haskell is a strictly pure, lazily evaluated language. It
> therefore has no pointers or references, just values and names.
> The implementation therefore cannot be in terms of references
> and pointers.
At this point consider whether it's possible to implement Pascal in Haskell.
If it is possible, then you have a problem wrt. drawing conclusions about
pointers in Pascal, uh oh, they apparently can't exist.
But if it is not possible to implement Pascal in Haskell, then Haskell must be
some etremely limited special-purpose language, not Turing complete -- is that
acceptable to you?
> As far as I can see, if someone says "implementing Python implies the
> use of pointers" as you appear to be doing, then Michael's argument
> neatly demolishes that argument by providing a counter-example: there is
> an implementation of Python that does not use pointers.
But then so is maintaining that Python doesn't have references.
And so is your argument applied to Pascal, just to mention that again.
> You, however, dismiss this as a fallacy, and suggests it somehow
> misrepresents you. And yet you wonder why people call your behavior (not
> you) paranoid.
On top of the multiple fallacies, dubious snipping of arguments, statements that
such arguments have not been presented (just after snipping them), and general
misleading insinuations and misrepresentation, ad yet another bit of personal
Do you understand what that may say to readers about you, Steve Holden?
Apparently it's all to defend an indefensible, idiotic position. But I think
you're doing it at least partially for the fun of harassing someone.
>>> I sincerely hope that my reply does not offend or inflame you,
>>> since that is not the intent. I do hope it educates you and puts
>>> into context the responses you have gained from others.
>>> After all, one simply shouting in a corner saying "YOU'RE ALL
>>> WRONG, WRONG, WRONG. I'M RIGHT RIGHT RIGHT", when one does not to
>>> understand what one is talking about does not tend to engender warm
>>> fluffy feelings or sentiments of authority towards such an
>>> individual. Be it me, you, or anyone else.
>>> At the moment, you appear to me to be engaging in such a behaviour.
>>> Now you don't know from Jack and probably don't care about my
>>> viewpoint, but I would really appreciate it if you would try not to
>>> be inflammatory in your response to this. (Since you do appear to
>>> also have a need to have the last word)
>>> Hoping this was useful on some level,
>> I elected to respond to just /one/ of the many arguments you
>> The other arguments, about why there are no references in Python,
>> shared, however, the basic property of being logical fallacies
>> packaged in kilometers of rambling text.
> And you can say this without, by your own admission, even reading it.
No, you can not quote any place I have said that I haven't read his article. I
did read most of it. So you are yet again within the span of one posted article
presenting untrue information that you know is not true.
> makes me wonder why we have paid you the compliment of engaging you in
Gosh, I don't know. You must be stupid to do that. Yes?
> since this is the most transparent evidence to date that what
> comes back will be unrelated to the arguments presented.
That is untrue, Steve Holden, and since you can't quote that "evidence", since
you evidently /have/ read my short article which you're responding to, knowing
exactly what to snip, you know that what you're saying is untrue. I think this
is your third lie in one posting. But who would care to count.
Cheers & hth.,
From: Benjamin Kaplan on 13 Feb 2010 19:56
On Sat, Feb 13, 2010 at 7:50 PM, Alf P. Steinbach <alfps(a)start.no> wrote:
> At this point consider whether it's possible to implement Pascal in Haskell.
> If it is possible, then you have a problem wrt. drawing conclusions about
> pointers in Pascal, uh oh, they apparently can't exist.
> But if it is not possible to implement Pascal in Haskell, then Haskell must
> be some etremely limited special-purpose language, not Turing complete --
> is that acceptable to you?
You're actually just proving his point here. It doesn't matter what
model Haskell uses, a version of Pascal implemented in Haskell has
pointers. Likewise, regardless of what model the implementation of
Python uses, Python itself doesn't have pointers, it has objects and
From: Steve Howell on 13 Feb 2010 20:31
This thread is interesting on many levels. What is the core question
that is being examined here?
From: Alf P. Steinbach on 13 Feb 2010 20:34
* Benjamin Kaplan:
> On Sat, Feb 13, 2010 at 7:50 PM, Alf P. Steinbach <alfps(a)start.no> wrote:
>> At this point consider whether it's possible to implement Pascal in Haskell.
>> If it is possible, then you have a problem wrt. drawing conclusions about
>> pointers in Pascal, uh oh, they apparently can't exist.
>> But if it is not possible to implement Pascal in Haskell, then Haskell must
>> be some etremely limited special-purpose language, not Turing complete --
>> is that acceptable to you?
> You're actually just proving his point here. It doesn't matter what
> model Haskell uses, a version of Pascal implemented in Haskell has
Yes, that kills his argument.
As you note, the Haskell bit is completely irrelevant.
So his use of Haskell implementation as a "no pointers" argument is completely
bogus, a fallacy.
> Likewise, regardless of what model the implementation of
> Python uses, Python itself doesn't have pointers, it has objects and
Well that's wrong for at least one general meaning of "pointer", but why quibble
Names in Python refer to objects.
Those references can be copied via assignment.
That's (almost) all.
And it provides a very short and neat way to describe pass by sharing.
Cheers & hth.,