Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site ucbcad.UUCP Path: utzoo!linus!philabs!cmcl2!floyd!vax135!cornell!uw-beaver!tektronix!ucbcad!ucbesvax.turner From: ucbesvax.turner@ucbcad.UUCP Newsgroups: net.lang.c Subject: Re: Re: C typedef deficiency - (nf) Message-ID: <171@ucbcad.UUCP> Date: Wed, 29-Jun-83 12:41:26 EDT Article-I.D.: ucbcad.171 Posted: Wed Jun 29 12:41:26 1983 Date-Received: Fri, 1-Jul-83 07:23:20 EDT Sender: notes@ucbcad.UUCP Organization: UC Berkeley, CAD Group Lines: 52 #R:turtleva:-20300:ucbesvax:4800015:000:2321 ucbesvax!turner Jun 28 23:28:00 1983 Who is controlling the definition of the C language? For years, I'd say that S.C. Johnson was the main force, with some factionalism surrounding various issues within the community of original definers. Now, I'm not sure. This language is probably the strongest link between the Berkeley and Bell UNIX versions. C has very much the flavor of an evolving language, even now. I find it almost intolerably messy in places, although I will confess a liking for the reasoning behind the construction of arrays of pointers to functions returning ints. typedef is a hack, but at least it gives you a handle on C's type constructions, once you figure them out. It hands you back a small piece of what it is hiding, which is one way for a language to evolve. To give away too much can cloud a revelation's uses with issues of safe packaging--an encumbrance. To give give away too little is to add an "ad hoc hack"--a trivialization. I think enum types fall into the latter category. They allow stronger typing, but in a counterproductive way. Bit fields are getting some use, and are even implemented efficiently on some machines, although I've never seen a convincing argument for the conservatism of alignment (to the next int, if I recall), or the reasons against arrays of bit fields. But they don't nearly defeat themselves. By far the best things to happen to happen to C in recent years are (1) "flexnames"--longer identifiers, and (2) multiple use in different struct/union definitions of the same field name. These two events have something about them of tree roots cracking the pavement they grow under. Structure assignment is sometimes useful. Some of these changes are documented in "The C Reference Manual" which, at our site, has an "appendix" (not marked as such; in fact, no page number appears) called "Recent Changes to C". It documents structure assignment and enum types. It is dated November 15th, 1978. No author is named--although there is an intimation that it is the author of the PDP-11 C compiler. I learned of the other extensions by word of mouth. Or by accident. From the hissing embers of what few neurons that I have remaining, I issue a plea for clarification. From a reliable source, that is. Hissing Only Slightly, Michael Turner ucbvax!ucbesvax.turner