bet@ecsvax.UUCP (03/20/84)
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