OT: Requesting C advice
Chris Schumann
chris at idlelion.net
Sat May 26 13:03:41 UTC 2007
Late reply; sorry.
> Date: Thu, 24 May 2007 08:43:26 -0700
> From: Les <hlhowell at pacbell.net>
> Embedded applications today
> are mostly 8 bit, but many, many designers have already begun the
> transition to 16 bit, and soon
> will be moving to 32 bit. The reasons are much the same as
> the reasons
> that general computing has moved from 8 to 16 to 32 and now
> to 64, with
> the cutting edge already
> looking at 128 bit and parallel processing, along with dedicated
> processors running 32 or 64 bit floating point math. Also
> the length of
> the integer used in C, which is a virtual
> machine is independent of the word length of the processor,
> except the C
> language designers (originally Kernigan and Ritchie) made the language
> somewhat flexible to simplify migration. That is why there were some
> undefined situations in the original specification. Remember
> that C is
> a virtual machine language, whose processor only has 24
> instructions (I
> think the Ansi committee added a couple, but they have specific uses
> that were not foreseen in the original usage of the language)
> It can be
> ported to any machine currently extant by only writing about 1K of
> machine code, and even that can be done in another available higher
> level language if you so desire, as long as it is compiled for
> efficiency.
Having used C since the original K&R version, I have to ask WHAT?!?
Since when is C a virtual machine language?
The only CVM I can find is Java's JVM. They have modified gcc (a C
compiler) to produce byte code for that JVM.
Every compiler I've used compiles C to native machine code for the
target platform. There is no intermediate language, and that's what
gave C its famous speed.
(and because it is a virtual machine language...)
> That is why even the 8 bit implementations of C used a 16 bit
> integer.
No it's not. They used 16 bit integers because you can't do much
of anything useful with only 8 bit integers. The compiler designers
for those systems (like the Apple II) had to work around the 8 bit
registers. Looking at the assembly-language source for some of the
libraries was not pleasant.
Chris
More information about the fedora-list
mailing list