Re: [Lit.] Buffer overruns

From: Douglas A. Gwyn (
Date: 12/10/04

Date: Thu, 09 Dec 2004 19:48:59 -0500

Mok-Kong Shen wrote:
> He said C is sort of macro-assembler.

You took that out of context; he also said other
things that set the context. The *level* of C,
which traditionally means the conceptual distance
from the source text to the machine code, is
comparable to that of a macro assembler. Arnaud
said, as did I, that C is a low-level language
that lets/requires the programmer to make all
design decisions except for code generation. It
is the code-generation independence that is most
responsible for the potentially high portability
of C source code. It is the ability to twiddle
individual bits directly in specific locations
that makes C suitable for such system tasks as
device drivers. C is thus very malleable, and
whatever "safety" (and other) attributes an
application might have are not directly
attributable in the language, but are imposed
by the programmer(s).