[comp.std.c] a "derived-declarator-type-list" isn't

henry@zoo.toronto.edu (Henry Spencer) (10/08/90)

In several of the subsections of 3.5.4, the result of a particular form
of declarator is defined in terms of the result of a simpler form, which
is said to supply a type "derived-declarator-type-list T".

There is just one problem with this.  Nothing ever defines what a d-d-t-l
is.  Despite the name, it is not a list of derived declarator types,
and indeed it is not a list of types at all.  The ill-defined horror of
"top type" lives on, sigh...

An experienced C programmer, of course, "knows" what the descriptions mean.
But he won't figure it out from the standard.
-- 
Imagine life with OS/360 the standard  | Henry Spencer at U of Toronto Zoology
operating system.  Now think about X.  |  henry@zoo.toronto.edu   utzoo!henry

gwyn@smoke.BRL.MIL (Doug Gwyn) (10/08/90)

In article <1990Oct8.000812.24800@zoo.toronto.edu> henry@zoo.toronto.edu (Henry Spencer) writes:
>In several of the subsections of 3.5.4, the result of a particular form
>of declarator is defined in terms of the result of a simpler form, which
>is said to supply a type "derived-declarator-type-list T".
>There is just one problem with this.  Nothing ever defines what a d-d-t-l
>is.  Despite the name, it is not a list of derived declarator types,
>and indeed it is not a list of types at all.  The ill-defined horror of
>"top type" lives on, sigh...
>An experienced C programmer, of course, "knows" what the descriptions mean.
>But he won't figure it out from the standard.

I think you're hallucinating problems into existence.  The examples in
questions all runs something like this:  "If, in the declaration "T D1",
D1 has the form ...[some well-defined syntactic construct involving d]...,
and the type specified for "ident" in the declaration "T D" is "derived-
declarator-type-list T", then the type specified for "ident" is ... [some
type description involving "derived-declarator-type-list" and "T"]".  This
is nothing more than the introduction of a bound variable "derived-
declarator-type-list" used in the same manner as the bound variable "T".
We could have used "X" instead of "derived-declarator-type-list".  There
is no need to provide a grammatical specification of the phrase, any more
than there is a need to describe the phrase "T" in the grammar.

henry@zoo.toronto.edu (Henry Spencer) (10/10/90)

In article <14048@smoke.BRL.MIL> gwyn@smoke.BRL.MIL (Doug Gwyn) writes:
>>In several of the subsections of 3.5.4, the result of a particular form
>>of declarator is defined in terms of the result of a simpler form, which
>>is said to supply a type "derived-declarator-type-list T".
>This is nothing more than the introduction of a bound variable "derived-
>declarator-type-list" used in the same manner as the bound variable "T".
>We could have used "X" instead of "derived-declarator-type-list".  There
>is no need to provide a grammatical specification of the phrase, any more
>than there is a need to describe the phrase "T" in the grammar.

The question is, what exactly is the binding of this misleadingly-named
bound variable?  As it turns out, I missed a bit of subtle wording earlier
which does pin this down reasonably well.  I'd still say that this easily
wins the price for the most confusing naming convention in the standard,
now that "top type" is gone, since a d-d-t-l is not a list of derived
declarator types, or of types of any kind.  "X" would have been much better.

(For those who wonder what "top type" was, be glad you don't know.  The
definition in the pre-final drafts was impenetrably obscure and impossible
to figure out unless you already knew what it meant.  It was approximately
what is now called "type category".  It smells to me like the d-d-t-l is
a remnant of the top-type mess.)
-- 
Imagine life with OS/360 the standard  | Henry Spencer at U of Toronto Zoology
operating system.  Now think about X.  |  henry@zoo.toronto.edu   utzoo!henry

diamond@tkou02.enet.dec.com (diamond@tkovoa) (10/12/90)

In article <1990Oct8.000812.24800@zoo.toronto.edu> henry@zoo.toronto.edu (Henry Spencer) writes:

>In several of the subsections of 3.5.4, the result of a particular form
>of declarator is defined in terms of the result of a simpler form, which
>is said to supply a type "derived-declarator-type-list T".
>There is just one problem with this.  Nothing ever defines what a d-d-t-l
>is.  Despite the name, it is not a list of derived declarator types,
>and indeed it is not a list of types at all.

Perhaps it is just a typo (perhaps a forgotten edit) for, simply,
"derived declarator type" which is defined in 3.1.2.5?

And if it isn't, then would someone please be kind enough to post the
correct definition?

-- 
Norman Diamond, Nihon DEC    diamond@tkov50.enet.dec.com
                                    (tkou02 is scheduled for demolition)
We steer like a sports car:  I use opinions; the company uses the rack.