On Fri, Apr 29, 2016 at 03:55:35PM -0700, Chuck Guzis wrote:
Those who claim that there's not much difference
between C and assembly
language have never run into a true CISC machine--or perhaps they rely
only on libraries someone else has written.
Now wait a minute here. C is a very old language. When it was first written
as a recursive descent compiler, compiler technology was very primitive.
K&R style code with primitive compilers pretty much resulted in high level
assembler. Look at the keyword 'register' and the rationale given for it.
Writing a true global optimizing compiler that generates code as good as
assembly is a nearly impossible task. When you are dealing with a
target machine with a large CISC set, it's really tough.
Now on that we furiously agree. One problem has been getting that through
to people who insist that C is still a high level assembler and has
not changed from the time when it was a hand crafted recursive descent
LR to the modern compiler with all the lovely optimisations we can do.
The best way of viewing it is to acknowledge that modern C is effectively
a new language compared to old K&R C that had no prototypes.
Speaking from experience, again.
ditto.
--Chuck
Diane
--
- db at
FreeBSD.org db at
db.net http://www.db.net/~db