S
spinoza1111
Without necessarily taking sides in this debate, I'd
like to inject a note of sanity!
The "call frames" (whatever they're called) of reentrant functions
in *any* programming language that supports such recursion will
*necessarily* form a stack. That *stack* *might* be implemented
as a ring buffer or a list but it *will* be a stack conceptually;
and it may aid the student to understand this.
Sure, it's *possible* to impose some overly restrictive
hyper-technical definition of "stack", for no purpose except
to announce, pedantically, that the recursive call frame
... err ... stack(!) need not be a Stack(tm). But noone's
interest is served by this, certainly not that of the student
looking for a *model* by which he can understand a programming
language. (I had a useful model for learning C 30 years ago
and, whatever my detractors want to claim about my skill, it
*did* allow me to retire and raise my kids in a rose garden.
Had only The Standard(tm) been available to me for learning,
I would have stuck to other languages.)
Now, it probably *is* true, and this may be all the pedants
are trying to say, that the word "stack" is not defined
in The C Standard(tm). Well, the word "bizarre" is probably
not defined there either, yet I need that word to describe
some of the pedantry seen in this ng.
(Present company excepted!)
Hope this helps.
James Dow Allen
Any one proof in mathematics is going to use a certain set of
techniques to the exclusion of others used in other possible proofs.
No real mathematician ever concludes that a student might understand a
proof but reason that this is the only way to prove the theorem. They
are as teachers instead delighted that the student "gets" it.
Whereas it's more characteristic of Fascists (yup, Fascists) to worry
about the teaching process to the extent of canceling classes (as in
arguments for California's Prop. 13 in 1976, which claimed that
California teachers were teaching Bad Things on the way to reducing
California's education system to what it is today: the worst in the
nation).
It's also characteristic of these Fascists (yup, Fascists) to sue
teachers as in the case of a Pace university class which sued its biz
skewl programming teacher for making them calculate Avogrado's number.
Homeys claimed that he was not teachin' them "practical business
programming" such as how to cover up referential loops in spreadsheets
when your boss is scamming derivatives on the side.
Mr. Allen, we're looking in my view at a generation of vipers here.
Our co-workers actually had to invent and to think on the job. Today,
these young whippersnappers might be called programmers, but in many
cases their jobs are so "rationalized" that they never actually code.
Instead, I'd guess that most of them sit around meetings trashing each
other and deciding how to ship the actual coding to Pondicherri or
Bangalore where people actually code, while making racist smart
remarks about Indians.
John Hennessy and his Risc kiddies dominated 1987 ACM ASPLOS. You
shuddha heard those boys on the stack: they hated the stack. Wirth was
there, and after Wirth made a brave defense of software stability and
safety as opposed to the Risc kiddies' childish obsession with
"speed" (itself a metaphor) I saw Wirth isolated and alone in the
middle of the hotel lobby.
RISC went on to lay an egg as we know. Not only did Intel continue to
dominate, RISC concepts as added to Pentiums merely made them more
CISC because (d'oh) RISC+CISC==CISC, not RISC. And oh yes, the
floating point bug happened, didn't it, although that is probably not
Hennessy's fault. It merely resulted from the insane stress on wrong
answers at a high but metaphorical speed.
The "stack" is not JUST a teaching tool. It also proves predictions
about what software will do, and this is something that Seebach et al.
seem loth to do.