Name: Anonymous 2009-06-15 11:00
I came across this quote*:
Why C Matters
C is the low-level language that everyone must know. It can be seen as a portable assembly language, and as such it exposes the underlying machine and forces the student to understand clearly the relationship between software and hardware.
I don't see that the conclusion follows from the premise. C can be seen as a portable assembly language, but ``as such'' it doesn't necessary expose the underlying machine (is it portable or does it expose the machine?). I know piss-all about x86 but that's never stopped me from writing a C program. I think one needs to program for a microcontroller explicitly to get a feel for underlying architecture, preferably both a von Neumann-based architecture and something like the PIC (Hardard architecture).
The author kind of backpedals and says,
Finally, compilers (GCC for example) make it easy to examine the generated assembly code, which is an excellent tool for understanding machine language and architecture.
Um, yeah, reading non-portable assembly language does serve as an excellent tool for understanding chip architecture. Then whence C?
* http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html
Why C Matters
C is the low-level language that everyone must know. It can be seen as a portable assembly language, and as such it exposes the underlying machine and forces the student to understand clearly the relationship between software and hardware.
I don't see that the conclusion follows from the premise. C can be seen as a portable assembly language, but ``as such'' it doesn't necessary expose the underlying machine (is it portable or does it expose the machine?). I know piss-all about x86 but that's never stopped me from writing a C program. I think one needs to program for a microcontroller explicitly to get a feel for underlying architecture, preferably both a von Neumann-based architecture and something like the PIC (Hardard architecture).
The author kind of backpedals and says,
Finally, compilers (GCC for example) make it easy to examine the generated assembly code, which is an excellent tool for understanding machine language and architecture.
Um, yeah, reading non-portable assembly language does serve as an excellent tool for understanding chip architecture. Then whence C?
* http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html