C language problems -- maybe we should leave it be?
bet at ecsvax.UUCP
bet at ecsvax.UUCP
Wed Mar 21 01:11:18 AEST 1984
C is an efficient, low-level language. It requires some sophistication
from programmers, and doesn't coddle the user with run-time error checking
and fantastically rich data types and operators. PL/I might be contrasted
to C in this regard. A recent posting proposed that sizeof(int) must be
at least as great as sizeof(char*), to preserve K&R "p1-p2" is of type "int"
for p1 and p2 pointers to objects of the same size. There are many
architectures on which sizeof(int)<sizeof(char*), since 16 bit integers
suffice for much arithmetic but 64K memory suffices for very little.
Another discussion, about calling a function with a parameter NULL as
a pointer, has led to suggestions for alterations of the language.
If C is generalized to cover every possible architecture in a completely
portable fashion I fear it will grow to the extraordinary bloat of PL/I.
PL/I, for example, gets around the entire class of conversion problems in
parameters to functions by passing not the parameter itself but a pointer
to a list of parameter descriptor blocks, which indicate the type of the
argument, allowing completely generic functions. It is a magnificent testimony
to the excellent design of the language C that everyone wants it to work on
any possible machine. However, if C is going to be inflated to such a degree
that I might not be willing to write a serious program using it because it
will be too big and slow, then please lets leave it be and call the result
of these well-intentioned "patches" and "extentions" something else (anyone
for "D"?). I don't like assembler. Please don't chase me back to it.
Bennett Todd
...{decvax,ihnp4,akgua}!mcnc!ecsvax!bet
More information about the Comp.lang.c
mailing list