Liste des Groupes | Revenir à se design |
On Fri, 1 Nov 2024 17:20:39 -0700, Don Y <blockedofcourse@foo.invalid>I'm not worried about the complexity of the compiler. Presumably,
wrote:
On 11/1/2024 5:05 PM, Joe Gwinn wrote:Most certainly. I first measured the complexity of computer languages>>C++ is an order of magnitude more complex than C. Even a
casual C programmer can imagine what his code will look
like after compilation. I.e., can imagine exactly what the
CPU will be doing (ignoring the fact that the compiler will
often out-think the coder in terms of time/space efficiency).
I think that the complexity ratio between C and C++ well exceeds ten.
Possibly. But, the cognitive load is roughly an order of magnitude.
If the developer can't "grok" (in the most literal sense of the word)
what's going on, what hope has he?
in the says when Ada83 first emerged in the mid 1980s, long before the
object-oriented stuff emerged. The competition was K&R C.
People knew that Ada was far more complicated than C, but exactly how
can one quantify such a slippery thing as "complexity" (whatever that
means)?
In those days, we used DEC VAX/VMS computers, and DEC had
well-regarded compilers for both C and Ada83, so I measured the total
file footprint in bytes on the disk of the two compilers (and their
libraries), and Ada83 was ten times the size of the C compiler.
Now this Ada83 compiler was unable to do anything except pass the
formal acceptance test for Ada83 compilers, while the C compiler was
in wide use, so the true ratio had to exceed ten when the Ada compiler
matured.
C++ was emerging around then, and the Ada community was forced to
respond - their answer was Ada95. One assumes that it is a factor
larger and more complex than Ada83, and that it too grew as it
matured.
You are probably able to weigh the various compilers, allowing us to
quantify the offerings of today.
The hardware's evolution is making things like the single-threadedThese programmers would likely hurt themselves if allowed to use a hexIt took a while for compilers to handle mutual-exclusion>
functions/commands correctly - in most architectures, one must block
interrupts for this to work correctly. It's a long story, and is a
good reason to work in assembly for that.
With modern processors, there are considerably more pitfalls than that.
Most "programmers" haven't a clue as to what a "barrier" is nor when
(or why!) to use them.
calculator without close supervision. So better find better
programmers.
Ah, but the iron is NOW the problem! Out-of-order execution, speculativeAnd, as hardware has become more featureful, the needs for talkingSounds like a good argument for running machine code right on the iron
to the iron UNAMBIGUOUSLY are increasing, constantly. Open door
for obscure, intermittent bugs...
- no annoying obscuring layers.
Les messages affichés proviennent d'usenet.