Yet Another Spinoza Challenge

S

spinoza1111

In <[email protected]>,

spinoza1111wrote:


Your interpretation is bizarre and (if you're not just being
disingenuous for the sake of manufacturing an opening for an attack)
idiotic. It is quite clear that, in the sentence quoted above, I was
using the word "it" to refer to racism itself, not to any particular
person - and I suspect you know this all too well.




Stack-based implementations certainly exist, and there's nothing wrong
with explaining how they work. But anyone who thinks that *all*
implementations use stacks for passing *all* parameters is fooling
themselves and, worse, potentially fooling other people too. Besides,
assuming a stack is not a prerequisite for giving a straight answer.

When you explain computing using basic simulation, using common,
vanilla approaches, you are in fact teaching good thinking in the form
of "playing computer". This is also known as "desk checking" and it is
a valuable way of eliminating bugs.

It was a necessity when I started out, since old "mainframe" computers
required you to submit your "job" through a window or use the machine
as its operator for a fixed time slice, and in many universities and
corporations, programmers had only one or two "shots" per week.
Therefore the best programmers used their desk time effectively.

Then, it was discovered that kibitzing about code was a good way of
socialising without getting into trouble with the primitive and cruel
managers of that era, because you could find bugs even faster. This is
how Gerald "The Psychology of Computer Programming" Weinberg developed
the idea of the "structured walkthrough".

It was also discovered that to be productive, the structured
walkthough had to be a zone of tolerance. The most brilliant
programmers, by 1970, were disenchanted with American, West European,
and (according to post 1989 histories) Soviet societies and growing
hair and beards. Increasing numbers of women were entering the field
(such as Alicia Nash, John's wife) and it was found that they were in
many ways better than many men at coding.

It was also found that loudmouths like Heathfield were disruptive and
prevented work from getting done.

The talk was not, for the most part, of standards and practises in
standards books, although the best programmers not only were willing
to follow standards when they made sense, they invented them,
including "Hungarian notation".

The talk was like that of Schildt. People reasoned using simplified
and generalized models of the machine.

For this reason, Seebach is being very irresponsible in criticising
Schildt for talking of stacks, and reminds me of the destructive (and
in many cases sexist) bastards who destroyed structured walkthroughs
by telling people what they could and could not say, without
developing an alternative way to solve problems.

In 1966, my buddy, who was already in programming, worked next to a
"keypunch" center in a Loop office. The manager would pace the aisle
calling the women who punched the cards "bitches" and "whores" to
ensure that the required number of keystrokes (which could be measured
by IBM keypunches) were made every day.

He also punished women who turned a "check" switch on to make sure
that their machines didn't produce invalid hole combinations because
he "didn't give a rat's ass" about errors: his supervisor didn't care
about anything except keystrokes.

Ten years later I was the supervisor of African American and Asian
women in a keypunch, card and 1401 center. We used the switch and got
a "verifier" to make sure the cards were correct. I wrote assembler
programs to check the data. In the "laid back" Seventies we were able
to make the controller wait for his reports without being accused of
slacking off.

Then, of course, Reagan was elected and today, we're back to the
ageist, sexist and racist office of yesteryear. Except you can't
smoke.

The attack on Schildt and your behavior are how society works on the
ground to keep people in their place. Schildt in 1989 was a bit of a
throwback to the old "cowboy" programmer and he knew his stuff, but by
1999, he was too much of an "individual" in a society which steals
people's efforts.
 
S

spinoza1111

We see again that twit spinoza is unable to understund C.

Mr. spinjoza, why are you unable to tell us why you says that there is
a company who is selling GCC and how it makes money on it. Spinoza
proves dayly multiple times that his brain is too small to understund
what C is but quacks about.

--
Tschau/Bye
Herbert

Visithttp://www.ecomstation.dethe home of german eComStation
eComStation 1.2R Deutsch ist da!

"Die Demo bootet?" Mein Herr, is there no way of saying that the
demonstration program loads itself directly from CD without mangling
your wonderful German language with a loan word? Surely there is a
marvelously long German word for what software does when it loads in a
short program to set things up for a longer loader, which then reads
the demonstration software! Das Boot wahr einem untersee and oh das
Meer ist Blaue.

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.

Mr. Rosenau, I do not know German. But I am afraid that you may not
know German nor English but instead speak and think in an ugly lingua
Franca able only to express snap judgements about people's competence
as if people (das Volk) were things. But as Mr Heathfield shows us, if
your main concern is judging others, you lose your grip on subject
matter as witness Heathfield's belief that a parameter block is
necessarily different from a stack frame.

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), and I am well
aware that my German, cobbled out of the juicy bits of Faust, the old
bilingual Routledge Kegan Paul edition of Wittgenstein's Tractatus,
and Bach chorales, is antique: Germans no longer address each other as
Mein Gnadige Lieber Herr. And Dutch men never did, and Dutch men are
not German (although in Amerika, the "thick-headed Pennsylvania
Dutchman" was a German).

However, I think the new language is pretty barbaric, because its
laudable egalitarianism has long since been privatized by rock and
roll. The current Pope refers to his Bavaria as a lost world in one of
his writings. The Nazis destroyed it, but our American occupation
could not put that humpty dumpty back together again.
 
D

Dik T. Winter

> 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".
> And Herr Dik Winter: I travel to and fro work with a variety of
> international riff-raff

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.
> Germans no longer address each other as
> Mein Gnadige Lieber Herr.

I do not think they ever did. But the last time I had contact in projects
with Germans, they still did address each other as "Herr Doctor" followed
by the surname (at least when they were speaking German, when speaking
English they in general used christian names).
 
S

spinoza1111

In

spinoza1111wrote:



Parameter blocks can certainly be contained within stack frames, but
there's no particular requirement for them to be thus contained.

Yes there is in a context-free language with recursion.
MacLennan has this to say on the subject: "...we have said that the
caller must /transmit/ the actual parameters to the callee. This
means that the actual parameters (either their values or their
references) must be placed in a location where the callee knows to
find them. Where should this be? The callee's activation record is
often a good choice (although there are others, such as registers)."
 [MacLennan 1999]

You don't understand the cite. Since the 1970s, "activation records"
have been stack frames.

From Michael L Scott, PROGRAMMING LANGUAGE PRAGMATICS (Morgan Kauffman
2000: learn how to cite, Heathfield): "If a language permits
recursion, static allocation of local variables is no longer an
option, since the number of instances of a variable that need to exist
at the same time is conceptually unbounded. Fortunately the natural
nesting of subroutine calls makes it easy to allocate space for locals
on a stack. Each instance of a subroutine at run time has its own
*frame* (also called an *activation record*) on the stack, containing
arguments and return values, local variables, temporaries and
bookkeeping information. Arguments and return values lie at the bottom
of the frame, where they are accessible to the caller".

If by "registers" Maclennan means hard locations, he's just wrong.
When I programmed in assembler on the 1401, there were three index
registers of three six bit bytes at memory locations 87..95. You could
put 2 parameters or their addresses in 87..92 and a return address (in
the 1401's special address number system) in 93..95 and branch to the
"subroutine" but the "subroutine" could not call itself, because it
had no place to save its top level parameters...unless you provided a
stack. The Fortran compiler which I debugged in machine language did
not permit recursion, which in American computing circles of the 1960s
was considered a Communist plot.

Recursion is not a frill: details at eleven. It occurs in financial
applications such as reinsurance. Many iterative procedures have an
alternate and more elegant recursive versions. However, a mark of
incompetence in programming is ignorance of recursion.
Another choice that I have seen used is an area of memory at a
specific known address, that is specially reserved for parameters (in
this particular case, parameters for system routines). IIRC this
particular machine had two such areas, for two different kinds of
system routine.

It is a mark of programming incompetence to think that fixed areas are
in some way virtuous, or for that matter even viable. It is in fact
quite common and elegant to write a procedure for a function that is
so useful that it can be used recursively. Old recursive descent
parsers needed to allocate a stack of their own because inside an
expression we find...expressions.
 
S

spinoza1111

[Learn to snip, for pity's sake]

In <[email protected]>,

spinoza1111wrote:

When you explain computing using basic simulation, using common,
vanilla approaches, you are in fact teaching good thinking in the
form of "playing computer". This is also known as "desk checking"
and it is a valuable way of eliminating bugs.

I actually agree with this. It's very, very rare that you say anything
sensible, so the above is especially welcome.

Note, however, that it depends on describing a particular
architecture. Thus, whilst certainly a useful and perhaps even a
necessary teaching technique, it is insufficient on its own when it
comes to cross-architectural languages such as C - unless, of course,
you accept the rather woollily-defined "abstract machine" as being
your "particular architecture".

You cannot implement C without runtime stacks. Period. This is because
C is a context-free language of Chomsky type 2 and permits recursion.
Therefore Feather and Seebach were guilty of civil and criminal libel,
since they used false claims to make an apparent case in which
Schildt's professional integrity and livelihood were targeted. You
also have a criminal modus operandi and a pattern of repeated criminal
behavior evident in the treatment of Navia.
 
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. Chinese used to
call a computer a "kam pu ta" but now it's called using the Chinese
words for electric brain.
 
K

Keith Thompson

Richard Heathfield said:
(sigh) No, there really isn't. Just about any searchable dynamic data
structure will do the job.
[...]

"context-free" clearly has nothing to do with it; that's an attribute
of the grammar for source code written in the language, not of its
run-time behavior.

But in the absence of threading, co-routines, and similar things,
the lifetimes of activation records for function calls do behave
in a stack-like last-in first-out manner. They could be managed
in any way you like: binary tree, malloc-like heap, whatever.
If you create and destroy activation records for C function calls,
you've implemented a stack (in the abstract LIFO sense) on top of
whatever underlying data structure you happen to be using. (And if
you don't destroy activation records when you leave functions,
you've got a serious memory leak -- though there might be good
reasons to deallocate them in bunches and/or out of order.)

And if the implementation can prove that no function in the program
is called recursively, it can choose to allocate a single static
activation record for each function. (On most implementations
there's no real advantage in doing so.)

Richard, perhaps you assumed that the term "stack frames" implies
that they must be organized in a contiguous hardware stack.
But the IBM documentation recently cited here used that term
(quite reasonably IMHO) to refer to frames that are not necessarily
allocated in that particular way.

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.
 
H

Herbert Rosenau

When you says that lccw32 is the only C that exists then you right.

What? Nobody said that.

[snip]
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.

--
Tschau/Bye
Herbert

Visit http://www.ecomstation.de the home of german eComStation
eComStation 1.2R Deutsch ist da!
 
H

Herbert Rosenau

who said that? Or did you mean "when lcc-win32 is the only C compiler
in
the world then..."

Right he says that not directly, but as he prises his commercial,
properitary thing as if it were the only compiler for the only OS on
the world. I see him spamming for that nearly dayly.
But I can not see that naiva will be able to see that his properitary
commerial compiler is the one that is able to be the only C compiler
on the world as he says always.

he never said his compiler was the only one in the world. Or that it
should be. I also don't regard "properitary [sic] and commerial" as
wicked
things, as you obviously do. Plumbers get paid why shouldn't computer
programmers?

If naiva were able to know C he would not tell anybody that his
properitary compiler that is not fully compilant to the standard
(doesn't matter if C89 or C99). If his knowledge of the standard were
really that what you says he would never claim that his compiler were
one that can present as compilant.

His positions appears to be that his compiler is very near to full
compliance
therefore it is C compiler. (Some people, on this ng, say he shouldn't
say this,

He ios spamming for his properitary commerial product like ther exists
nothing else.
but not everyone). I don't *think* he claims full compliance to
the C99 standard. He definitely doesn't claim compliance to C89.

Why is everyone putting words into other people's mouths on this
thread?

Here is only one person who is spamming for a compiler in this group,
knowing that it is not comilant to the standard by ignoring the
standard.

It doesn't matter that his compiler can used under some condition for
free whil he requests money for it. There is no guarantee that
regardless of which option you uses you can ever compile a full
standard conform program - if C89 or C99 at all because naiva has
until today not understund what the standard says and for what the
standard exist.

I'm really tired to get spammed for that shit even as he has its own
group that gets avoided by anybody as it looks kile - else he would
not spam.

--
Tschau/Bye
Herbert

Visit http://www.ecomstation.de the home of german eComStation
eComStation 1.2R Deutsch ist da!
 
H

Herbert Rosenau

Mein Lieber Herr, you have missed it where
I explained all to you (auf du).
You gibt zee code away
To starving young programmer, orphaned at birth
Struggling in technische Hochschule to prove seinem worth.
You let zee Fraulein in zee whorenhaus
Haff zee software for eine free blowen Job.

But venn zee wicked Kapitalist comes along
You do not sell zee software for einem Song
You look at him like Pirate Jenny in Bertolt Brecht
You look at his fine clothes undt seinem Watch,
And his tall hat of zee Zilken kind,
And his shoes so polished to ein Schein,
Undt you say, vun two three
T'ousand neuen Reichs Marks from zee likes of Thee!

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.

--
Tschau/Bye
Herbert

Visit http://www.ecomstation.de the home of german eComStation
eComStation 1.2R Deutsch ist da!
 
H

Herbert Rosenau

We know that spinoza quacks about things he has no knowledge about
because there is nothing he will ever know a little bit.

--
Tschau/Bye
Herbert

Visit http://www.ecomstation.de the home of german eComStation
eComStation 1.2R Deutsch ist da!
 
H

Herbert Rosenau

You cannot implement C without runtime stacks. Period.

The 3 years old child trupets what he thinks is the only possibility,
ignoring any fact.

spinoza is known as troll already that has proven that he knows
nothing about real live, each and any language, scince and business.
He proves himself constantly as little child without a bit brain.


--
Tschau/Bye
Herbert

Visit http://www.ecomstation.de the home of german eComStation
eComStation 1.2R Deutsch ist da!
 
K

Keith Thompson

Herbert Rosenau said:
When you says that lccw32 is the only C that exists then you right.

What? Nobody said that.

[snip]
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.

I don't believe jacob has never said or implied that lcc-win32 is "the
only C that exists".
 
K

Keith Thompson

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.
 
K

Keith Thompson

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.
 
R

Richard Tobin

spinoza1111 said:
You cannot implement C without runtime stacks. Period. This is because
C is a context-free language of Chomsky type 2 and permits recursion.

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?

Given a sufficiently liberal interpretation of "stack", it's true that
proper implementation of recursion requires a stack. But it has to be
a *very* liberal interpretation: suppose procedure activation records
are heap allocated and garbage collected, would you really call it a
stack? It would be more natural to say that such an implementation
uses the heap allocated records in a stack-like manner.

-- Richard
 
K

Keith Thompson

Richard Heathfield said:
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.

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.
 
D

Dik T. Winter

>
> 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.
> 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".

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?
 
N

Nick Keighley

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), [...]

this seems odd. I'm from the UK and "riffraff" has, if memory serves
me right,
been around since my childhood. We do use American loan words but I
think
there were fewer of them in my childhood (no TV).

<google "riffraff etymology">
c.1470, from earlier rif and raf "one and all, every scrap" (1338),
from
O.Fr. rif et raf, from rifler "to spoil, strip" (see rifle (v.)) and
raffler
"carry off," related to rafle "plundering"

I wouldn't have thought Dutch was a form of Old French
 
D

Dik T. Winter

> 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".
 

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,074
Latest member
StanleyFra

Latest Threads

Top