C not LALR(1) & compiler bugs
Mike Farren
farren at well.UUCP
Mon Jan 27 20:15:00 AEST 1986
In article <10200035 at ada-uts.UUCP>, richw at ada-uts.UUCP writes:
With a little creative deletion:
> C's grammar is CONTEXT SENSITIVE !? Can it be ?!
> To see this, consider this program line
>
> A ( *B );
>
> If A has been defined as a typedef name, then the line is a
> declaration of a variable B to be of type "pointer to A."
> (The parentheses surrounding "*B" are ignored.) If A is not
> a type name, then this line is a call of the function A with
> the single parameter *B. This ambiguity cannot be resolved
> grammatically.
> Doesn't that make you wonder if something is SERIOUSLY wrong with C?
No, it supports my long-held theory that even Kernighan and Ritchie
are only human. Oops, perhaps, but hardly a fatal flaw.
> Personally, I think that the real fault for my "buggy" compiler
> lies not with the compiler writer, but in the shoddy language design
> that haunts the deep-dark corners of C. I mean, is there any excuse
> for the grammar being context sensitive? Or, for that matter, for
> identifiers having only 8 significant characters?
>
> -- Rich "Picky-Picky-Picky" Wagner
Well, I think you've lived up to your nickname. One example of
context sensitivity, especially in an area which is designed solely to
make things a little easier on us poor programmers, hardly makes for
"shoddy language design". There's probably no excuse, but then, I don't
think that one is needed - too many good programs have been written for
two many years using C for me to think it shoddy. As to the 8 significant
characters, that's a problem for the compiler designer, not a built-in
limitation, and undoubtedly stems from associated assembler and linker
limitations, not C's own.
--
Mike Farren
uucp: {your favorite backbone site}!hplabs!well!farren
Fido: Sci-Fido, Fidonode 125/84, (415)655-0667
More information about the Comp.lang.c
mailing list