Re: Article on Herbert Schildt, author of C Unleashed, repaired on wikipedia



On Jan 10, 5:22 pm, spinoza1111 <spinoza1...@xxxxxxxxx> wrote:
On Jan 10, 9:13 am, kwikius <a...@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:





On Jan 8, 4:33 pm, spinoza1111 <spinoza1...@xxxxxxxxx> wrote:

On Jan 8, 11:46 pm, "Stephen Howe" <sjhoweATdialDOTpipexDOTcom> wrote:

The 2000 persecution of Herbert Schildt for being a good teacher and
writer by people who can neither teach nor write used usenet, Amazon,
and wikipedia.

EXCUSE ME.

I HAVE TOLD YOU that ISO C AND C++ committee members have expressed
reservations on Herbert Schildt.
That is it. End of story. Their opinion takes preference to yours as they

<...>

The problem being, of course, that the C standardizers, being as small
bourgeois worshippers of machines find the very idea of a virtual
machine either incomprehensible or anathema.

They want to have their cake and eat it too. They want a "standard"
for a language in which code (such as Rob Pike's code presented by
Kernighan) mindlessly or deliberately forgets all sorts of realities
while remembering architectural quirks, such as the fact that some
machines store strings in byte arrays to this day. But standardization
is really only for the pure of heart (cf. the Revised Report on Algol
60) who have set aside childish things, such as infantile affection
for hardware.

<...>

The concept of a virtual machine is very powerful. I am not sure how
old it is but I guess that it was Java that popularised it in a
dramatic fashion.

Prior to that I think that the general idea was that you had to
programme to some specific hardware. IOW hardware manufacturers were
in a strong position and programers were in a weak position, tearing
their hair out. That is the way things grew up. Hardware machine code
gradually evolved into ever higher level software programming
languages.

It is also worth noting that hardware manufacturers have responded,
both by providing coprocessors and other add ons and by making new
designs more programmer friendly and less quirky.

Its simple really. If you make your hardware easy to programme at a
high level then you will sell more hardware. ( Microchip for example)
You also (Theoretically !) should get less bugs from happy
programmers.

Of course C and therefore C++ are pre "virtual machine revolution",
and in particular to C++, Java and C# were seen as a threat. The make
up of the C and C++ standardisation commitees probably reflects this,
though AFAIK the C++ committee have looked at Java ( e.g mechanisms
for implementing threads). (IMO both Java and C# have their own
problems, for example imposing a strict OOP programming style.)

In both C and C++ newsgroups a large amount of time is spent
discussing the semantics of fundamental types, implicit conversion
from double to bool, semantics of signed + unsigned and so on.

In C there is little that can be done, but in C++ (which is my
favourite language) I do believe that there are all the mechanisms
there (operator overloading, and in C++0x, Concept based overloading
to seriously address the issue of a virtual machine.

As an example the int type in C++. Currently it has a wide range of
behaviours depending on the hardware. There is no theoretical reason
why one couldnt request that int is 32 bits or 16 bits or 24 bits,
that you want twos's complement addition semantics, that you want
overflow to throw an exception in debug mode etc, etc. IOW the basis
of a C++ virtual machine.

I hope that, long term, programming languages will be designed in
terms of an underlying virtual machine, as will hardware. Its just a
more sensible way to design, from documentation, to semantics, to
abstraction away from one particular hardware.


regards
Andy Little


.



Relevant Pages