In article <4dc29cdd$0$29991$c3e8da3$54964...@news.astraweb.com>,
 Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> wrote:

> C is better described as a high-level assembler, or a low-level language. 
> It is too close to the hardware to describe it as high-level, it has no 
> memory management, few data abstractions, and little protection.

+1

I (and most people who really know C and the specific hardware 
architecture they're working on) should be able to look at a C program 
and (modulo optimization) pretty much be able to write down the 
generated assembler by hand.  In fact, I used to do exactly that.  I was 
once working on M-6800 hardware (8/16-bit microprocessor).  I used to 
write out procedures in C, then hand-compile it into assembler code (and 
leave the C code as a comment).  I wasn't a true masochist, however.  I 
did let an assembler convert it to hex for me before I keyed it in :-)

On the other hand, trying to do that for something like C++ is damn near 
impossible.  There's too much stuff that happens by magic.  Creation 
(and destruction) of temporary objects.  Exception handling.  RTTI.  Not 
to mention truly black magic like template expansion.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to