Yet Another Spinoza Challenge

S

spinoza1111

...
 > And Herr Dik Winter: I travel to and fro work with a variety of
 > international riff-raff (American word but Dutch by way of Neeuwe
 > Yorke, which was Dutch for a while in the 17th century),

1)  Riff-raff is certainly not from Dutch origin.  It is (in the form rif-raf)
    a fairly recent addition to the language as used by some.
2)  "Neewe Yorke" was not the name in the 17th century, in the first place is
    the spelling wrong (even according to 17th century vagaries), the name
    was, until the English took it over, "Nieuw Amsterdam".

My my aren't we having our leg pulled. Renmind me to stay out of your
cold and Northern climes, even Holland. And trust me, I know more than
you. Prior to the first modern dictionary of English (Samuel Johnson),
men spelled the way they wanted two, and the double ee is
characteristic of Dutch.

They called it Neewe Yorke after the Duke of York sailed in and threw
the Dutch rulers out, because most of you Hollanders stayed, and
created a significant part of American English.
 
S

spinoza1111

...
 > >  > Let's be serious. Dijkstra noticed how in Dutch computer manuals "the
 > >  > user" was untranslated from English and decided that "the user" was
 > >  > not only a loan word but also a neologism and a new, and pernicious
 > >  > idea. because Dijkstra saw that the "user" was less a man of flesh and
 > >  > blood and more an unpleasant abstraction, like the "deus ex machina",
 > >  > with no taste but a lot of money.
 > >
 > > Can you provide a reference for this?  In all the Dutch computer manuals
 > > I have read he/she was always referred to as "gebruiker".
 >
 > Search the Dijkstra archive at the Univ of Texas. It may be that in
 > Dutch, the term evolved into a natural Dutch word.

So you are not able to provide a reference.  From whenever I started
programming (around 1968) the Dutch word "gebruiker" was generally used.

Search the Dijkstra archive at the University of Texas.
 >                                                    Chinese used to
 > call a computer a "kam pu ta" but now it's called using the Chinese
 > words for electric brain.

Strange enough in Dutch is was just the other way around.  Originally
"rekenmachine", later it became "computer".
Pity.


No reply to my comments about your use of "Mein Herr" indiscrimately for
anyone from the Northwestern part of continental Europe?  You are not even
interested in that you are seen as deliberately offensive against anybody
from that part of Europe?

I'd say you take offense deliberately. I'd say lighten up, mijn Heere.
It's not racism. Arguably, it's an attempt to be friendly and
respectful in the tongue and cheek register.

And I certainly demur from the rule of thumb that the geographically
challenged use, which is to be silent in the presence of the Other and
not at least attempt to use their lingo, lest they be embarassed. You
may have noticed that I've grown out of that form of repression.
 
S

spinoza1111

May I suggest that you should improve your English or else avoid
personal attacks.  The combination does not work well.

Thanks, but when I detect that a person may be using English as a
second language, I try to avoid grammar flames.

Why don't we just grammatically scan posts and if the subject of the
sentence is a person being exposed to censure, declare the post off-
topic? Ever hear the phrase "principles not personalities". I know
that I offend in this regard, and can only say that (1) when this
animal is attacked it defends itself, and (2) make personal attacks
only to summarise a set of charges concerning that person's behavior
and beliefs.

People being bullied have an absolute right to verbal self-defense and
that may necessitate analyzing their attacker's motivations and
behavior in ways that yield unpleasant prose. But too many people, as
above, come in here, read a couple of recent posts to find someone
being bullied, and join the Lynch mob.
 
S

spinoza1111

If you allow chaining via a pointer or by being adjacent in memory,
two very different mechanisms, it seems inconsistent not to allow
chaining by other means, such as by information stored in some
outside data structure.  (I'm using the word "allow" in the sense
that anything not meeting the definition isn't a stack, not that
it's forbidden).

Wikipedia's definition:

<http://en.wikipedia.org/wiki/Stack_(data_structure)>

seems reasonable to me:

    In computer science, a stack is a last in, first out(LIFO)
    abstract data type and data structure. A stack can have any
    abstract data type as an element, but is characterized by only two
    fundamental operations, the push and the pop. The push operation
    adds to the top of the list, hiding any items already on the
    stack, or initializing the stack if it is empty. The pop operation
    removes an item from the top of the list, and returns this value
    to the caller. A pop either reveals previously concealed items, or
    results in an empty list.

    A stack is a restricted data structure, because only a small
    number of operations are performed on it. The nature of the pop
    and push operations also means that stack elements have a natural
    order. Elements are removed from the stack in the reverse order to
    the order of their addition: therefore, the lower elements are
    typically those that have been in the list the longest.

This definition is good, but it implies a prohibition on "seeing"
entries other than the top of the stack.

Forth, Mouse (for which I wrote a compiler for the Texas Instruments
Ti-79 in 1000 memory cells) and some calculator languages featured
stack rotate operations. They make the entries other than the top. It
could be argued that they do so zero-sum by hiding the former top.

But many programs need to display their stack during execution. This
implies the ability to read values other than the top.

Call a stack strict if it allows reading or writing only at the top.
Call it tolerant if it allows reading at entries other than the top.
Tolerant stacks are still stacks.
 
S

spinoza1111

The usual sense - a chain of data structures, each (other than the
last, obviously) linked to the next in the chain, either via a
pointer or by virtue of being adjacent in memory, where new items can
be added only at the top and where only the top item can be removed.



Then we have a terminology clash, so I think we're done here.

Eye roll crotch grab because I don't care about terminology. If you
don't know how things work in the mathematical intuitionist sense, you
don't know jack.
 
S

spinoza1111

How can being a context-free language - which is a property of
the program grammar, not its semantics - possibly imply anything
about run-time implementation?

It does not, and I regret the implication. To clarify, a language with
subroutine call is best implemented with a runtime stack: a context
free language can only be compiled with a stack, but that point isn't
relevant to Schildt's point. If it also has recursive subroutine call,
it can ONLY be implemented with a stack.

And note something very interesting in this regard. A language which
has subroutine call, but no recursion, is dead on arrival. This is
because the language compiler cannot detect indirect recursion where a
calls b calls c ... calls x calls a if there are library routines
whose source code is not available to the compiler.

This means that if indirect recursion occurs by accident, a hard to
detect bug will probably occur when control returns to the first
subroutine called by a (b) and it tries to return to a's first
activation.

Although recursion appears somewhat rarely in bread and butter
applications in "banks and insurance companies", if you allow
subroutines you're forced to allow recursion. And if you allow
recursion, you MUST use a stack; if you use a super-stack which does
more than a stack (such as allowing itself to be displayed), and give
it a name such as quack, you are still using a stack. Therefore it
made perfect sense for Schildt to talk about a stack.
 
S

spinoza1111

Richard Heathfield said:
So, to re-state yet again what should be obvious, C does impose
stack-like LIFO semantics for activation records (or stack frames,
or whatever you want to call them), but it absolutely does not
require or even imply a contiguous hardware stack that grows in one
direction and shrinks in the other.  A contiguous hardware stack
is certainly one way to implement C's required semantics, and it's
the best way on most architectures, but it's not the only way.
[...]

Stack-like semantics? Sure. But you don't *have* to use a stack. It's
obviously a very, very sensible choice, but it is not the only
choice. Any searchable dynamic data structure will do. I suspect the
reason some people are defending stacks so valiantly is simply that
that's the only way they've ever seen it done.

In what sense are you using the word "stack" in the above paragraph?

A stack in the general sense of a LIFO data structure can be
implemented in any of a number of ways, including a linked list
(and linked list is itself an abstraction, implementable in any of
a number of ways).

I assert that anything with "stack-like semantics" *is* a stack in
the general LIFO sense of the word.  (Of course it's not necessarily
a stack in the more specific contiguous hardware sense of the word.)

Any C implementation must use something with LIFO semantics to
implement function calls, i.e., a stack.  How it implements that
stack is another matter entirely.

Therefore, Schildt was right. Counsel rests, star witness for the
prosecution having just laid an egg.

Schildt was criticised for talking about stacks because the standard
makes no mention of stacks.

The standard may have done so because there may be embedded (or other)
compilers for C which are broken but in use, which do not use stacks.
I'd speculate that these compilers use a fixed set of hard registers
for call and return and generate code to save old registers in space
allocated as part of specific functions' memory space.

This will work fine until direct or indirect recursion occurs. The
programmers using these compilers may be aware of this, and they may
simply transform recursion into iteration, which is possible in some,
but not all, cases.

Job One for Seebach may have been protecting the profits of companies
like these.
 
S

spinoza1111

Er, not quite. I assumed that the term implies either a hardware stack
or a software stack (hence the word "stack"). The term "activation
record" (used, for example, by MacLennan in "Principles of
Programming Languages") is a more abstract description and thus, in
my view, preferable.



Clearly, any implementor can choose to pass parameters in registers,
or in some globally-accessible memory region. That won't necessarily
work /all/ the time, but it can be done on those occasions when it's
the Right Thing (or, at least, Not the Wrong Thing).

Stack-like semantics? Sure. But you don't *have* to use a stack. It's
obviously a very, very sensible choice, but it is not the only
choice. Any searchable dynamic data structure will do. I suspect the
reason some people are defending stacks so valiantly is simply that
that's the only way they've ever seen it done.

Which is better than being some clown who's never seen it done (eg.,
someone who's never written a compiler or a runtime yet tries to ruin
the reputation and businesses of people who have).
 
S

spinoza1111

Herbert Rosenau said:
[snip]
Oh, das Meer ist Blaue, zo Blaue,
And zis is zee way it verks, is how.
The troll spinoza is not even able to write english. So he proves
himself as not only unable to understund C but english too.

And you re-post his drivel so those of us who have killfiled him get
to see it.

Please stop feeding the troll.

"Troll" is a racist word, its origin being in Nordic legends
justifying the ethnic cleansing of indigenous European peoples: as
such it is akin to "gypsy" or "siegourner" in that it is a name given
from outside which mischaracterises a group of people: here that group
is the dissidents at this site.

The received definition refers to a person who posts ironically to
"get a rise" out of people. It is completely inappropriate in my case,
since I post my sincere beliefs, at some risk were I to re-enter
programming (unlikely given my low opinion of typical programmers).

Furthermore, your usage is isomorphic to anti-Semitic grammar. Mr.
Keith Thompson, are you an anti-Semite?
 
S

spinoza1111

What?  Nobody said that.

Not true. here in this group is one who sells lccw32 as the only C
comiler on the only OS that ever exists. Whenever an arikle comes up
that asks something the naiva has nothing better to do than to praise
his to true C incompatible commerial product as the only solution.

The "Joe Wilson" of this group speaks up.
 
M

Moi

Rifraf is certainly *not* Dutch.
as I expected it was imported from French.
It might have been introduced into North America.

http://www.dbnl.org/tekst/sijs002chro01_01/sijs002chro01_01_0031.htm
My my aren't we having our leg pulled. Renmind me to stay out of your
cold and Northern climes, even Holland. And trust me, I know more than
you. Prior to the first modern dictionary of English (Samuel Johnson),

Sure you do. misstaking an ee for an eeu or an ui or a eu is very common.

Yes, Zeur!
men spelled the way they wanted two, and the double ee is characteristic
of Dutch.

They wanted to or they wanted two ?
Did they want it, too ?
They called it Neewe Yorke after the Duke of York sailed in and threw
the Dutch rulers out, because most of you Hollanders stayed, and created
a significant part of American English.

Dit de Djoek of Jork know about seekwens points ?
:)

AvK
 
R

Richard Tobin

spinoza1111 said:
And note something very interesting in this regard. A language which
has subroutine call, but no recursion, is dead on arrival.

A general-purpose language without recursion would be dead on arrival
now, because recursion is now such a widely-used technique. In the
past, this was not the case: Fortran did not provide recursion until
Fortran 90. In the 1980s I used Fortran compilers that allocated
fixed locations for local variables.

-- Richard
 
W

Walter Banks

spinoza1111 said:
And note something very interesting in this regard. A language which
has subroutine call, but no recursion, is dead on arrival. This is
because the language compiler cannot detect indirect recursion where a
calls b calls c ... calls x calls a if there are library routines
whose source code is not available to the compiler.

Oh, news to me. Program structure mapping has been a regular part of
compilers and linkers for about 30 years.

w..
 
R

Richard Bos

Dik T. Winter said:
Irrelevant. When you address Herbert Rosenau as "Mein Herr" is alright.
Addressing (in English text) Danes and Dutchmen as such can be felt as
offensive.

Gossamme, kloothommel, heb je nou _nog_ niet door dat dat precies de
reden is waarom hij het doet?

Tjezus, deze hele nieuwgroep gaat in een rottempo naar de vaantjes.

Richard
 
M

Moi

Gossamme, kloothommel, heb je nou _nog_ niet door dat dat precies de
reden is waarom hij het doet?

Tjezus, deze hele nieuwgroep gaat in een rottempo naar de vaantjes.

En het komt allemaal door die ene tyfuslijer die het verpest voor de rest.
Stelletje mongolen!

AvK
 
M

Moi

For those of you who don't speak Dutch, I offer this translation:

"Gossamme, kloothommel, do not have you nou _nog_ by that exactly the
reason are why he it do? Tjezus, these complete nieuwgroep go in
rottempo to the small flags."

Hee gas, mot jij nie vleemen met die omgevalle orientaolse boekekas ?

@Babelfish: eat your heart out!

;-}

AvK
 
D

Dik T. Winter

Nee, zakkewasser. Hij probeert over te komen als iemand met kennis en
weet er de ballen van. Dat hij een Deen zo aansprak kwam omdat hij niet
in de gaten had tegen wie hij het had.
>
> En het komt allemaal door die ene tyfuslijer die het verpest voor de rest.
> Stelletje mongolen!

Ah, zullen we hier een Nederlandse vlammenoorlog opstarten? Stelletje
randdebielen. Als je wilt zien hoe een nieuwsgroep echt naar de vaantjes
kan gaan kijk dan eens in sci.math, daar kan je zien hoe een enkele persoon
er in slaagt om een hele nieuwsgroep om zeep te helpen. En ik vermoed dat
dat ook de bedoeling is van deze heer met zijn persoonlijke kruistocht.
 
D

Dik T. Winter

>
> Search the Dijkstra archive at the University of Texas.

I think I found it: EWD587. He is not talking there about computer manuals
at all, where you derive that notion from escapes me. And you apparently
did *not* understand what he told at all (yes, it is a transcript of a talk
in 1976, not something he wrote himself). As far as I know there is *no*
Dutch computer manual that uses the word "user".
>
> Pity.

Yes, perhaps. Currently it is in general no longer "computer", but "PC".
But there is a distinction, "rekenmachine" is still in use, but now it in
general refers to a small electronic of mechanic calculator, while
"computer" refers to the larger electronic equivalent.

But in a point I agree with Dijkstra, where he refers to the taking over of
technical terms. I have a manual for the Telefunken TR4 where every Algol 60
term is translated into Dutch. It is pretty difficult to read it. And I
have also been involved in the translation of French Algol 60 programs to
standard (the French programs used translated keywords...).
>
> I'd say you take offense deliberately. I'd say lighten up, mijn Heere.
> It's not racism. Arguably, it's an attempt to be friendly and
> respectful in the tongue and cheek register.

Well, I am lucky to be now promoted to deity as well. Thank you.
> And I certainly demur from the rule of thumb that the geographically
> challenged use, which is to be silent in the presence of the Other and
> not at least attempt to use their lingo, lest they be embarassed. You
> may have noticed that I've grown out of that form of repression.

It is clear that you attempt to use a lingo of which you know zilch.
 
D

Dik T. Winter

> It does not, and I regret the implication. To clarify, a language with
> subroutine call is best implemented with a runtime stack: a context
> free language can only be compiled with a stack, but that point isn't
> relevant to Schildt's point. If it also has recursive subroutine call,
> it can ONLY be implemented with a stack.

I wonder. Somewhere in my archives I have the transcript of a discussion
between van Wijngaarden and somebody else where van Wijngaarden did show
that labels were not needed. (I do not have it nearby, my archive is a
bit scattered around.) The first step in the transformation of a program
with labels was to a program without subroutines, replacing nearly every
subroutine by a label. So apparently, every program containing recursive
subroutine calls could be transformed to a program without recursive
subroutine calls. (The next step was replacing every label by a subroutine.)
> And note something very interesting in this regard. A language which
> has subroutine call, but no recursion, is dead on arrival. This is
> because the language compiler cannot detect indirect recursion where a
> calls b calls c ... calls x calls a if there are library routines
> whose source code is not available to the compiler.

Right, that was why Fortran was dead on arrival.
> This means that if indirect recursion occurs by accident, a hard to
> detect bug will probably occur when control returns to the first
> subroutine called by a (b) and it tries to return to a's first
> activation.

I indeed have seen this happen with Fortran programs, resulting in infinite
loops. Not the only problem with Fortran that could not be detected by
either the compiler or the runtime.
 
D

Dik T. Winter

> "Troll" is a racist word, its origin being in Nordic legends
> justifying the ethnic cleansing of indigenous European peoples: as
> such it is akin to "gypsy" or "siegourner" in that it is a name given
> from outside which mischaracterises a group of people: here that group
> is the dissidents at this site.

"A dwarf or giant in Scandinavian folklore inhabiting caves or hills."

In what way is that "racist"?

"A lure or line with its lure and hook used in trolling."

In what way is that "racist"?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,583
Members
45,073
Latest member
DarinCeden

Latest Threads

Top