signed/unsigned [etc ...]
T. William Wells
bill at twwells.uucp
Thu Dec 15 13:48:09 AEST 1988
In article <76 at armada.UUCP> becher at armada.UUCP (Jonathan D. Becher) writes:
: In article <244 at twwells.uucp>, T. William Wells (bill at twwells.uucp) flames
: Piercarlo Grandi (pcg at cs.aber.ac.uk):
: > As for simplifying the type system; the current one is as simple as
: > is possible for it to be, given that it *must* be compatible with the
: > old one, and given the addition of a `signed char'.
: Ease up Bill.
: Sure, it's a given that we need to be backwards compatible with the type
: system of C. But the type system could be simpler - if we were
: designing the language today we would almost certainly opt for more
: structure and less ambiguity.
I didn't say it couldn't be simpler. I said what I said. Read it
again. Mr. Grandi wasn't offering suggestions for D, he was offering
suggestions for C. And, within that context, which requires
consideration of the points I mentioned, it can't be simpler.
: >> [1] there are two distinct types, int and unsigned; they are distinct
: >> types because different rules of arithmetic apply to them.
: > ... you are wrong about there being two distinct
: > types; from the view you are adopting, there are three. See below.
: >> [2] Each of the two distinct types may come in three different extra
: >> lengths, char, short and long ...
: > Let me repeat this: there are three signednesses in C:
: > 1) integers - these have positive and negative values.
: > 2) unsigned - these have positive values only.
: > 3) char - these have positive values. Sometimes they have
: > negative values as well but it depends on the implementation.
: We splitting semantic hairs here. "Type" is whatever you define it to be.
: For my money, there are 14 type specifiers in C (see section 3.5.2 draft
: ANSI C). We can rule out typedef's since they are user-defined and
: claim that there are 13 base types.
*We* aren't spliting semantic hairs. *You* are misreading me. Read
again the material you quoted. The discussion was about signedness
as an important distinguishing characteristic of types. He was
saying there are *two* kinds of signedness. This is not true, and it
needed pointing out.
: > `Char int' is, and always has been, illegal. I don't know of a single
: > compiler that accepts it.
: Okay, but I do. The current version of GNUs C++ compiler accepts it.
: In fact, it accepts int int also.
C++ is not C. And GNU's C compiler, version 1.22, (the version I have)
does not accept this incorrect construct.
: Face it Bill, the type system isn't as consistent from a parsing
: perspective as it might be. It is more than adequate however; and, as
: you pointed out, there are compelling historical reasons not to abandon
: it. But let's not be a C snob.
Face it Jon, your comments are not germane. I wasn't defending the
existing type system, I was *describing* it. I understand perfectly
well that the type system could be better; I even have my own ideas on
this. However, this is irrelevant to questions of the *facts* of C,
which the person whom I flamed got wrong.
Mr. Becher, if you have anything further to say on this subject,
please use e-mail. I'm not willing to further spend net bandwidth on
it.
---
Bill
{uunet|novavax}!proxftl!twwells!bill
More information about the Comp.lang.c
mailing list