comp.lang.ada
 help / color / mirror / Atom feed
From: "Robert I. Eachus" <rieachus@earthlink.net>
Subject: Re: friend classes in ada95
Date: 2000/04/19
Date: 2000-04-19T00:00:00+00:00	[thread overview]
Message-ID: <38FE442C.92F7C2B3@earthlink.net> (raw)
In-Reply-To: 8dgk3m$aj7$1@nnrp1.deja.com

Robert Dewar wrote:
  
> Silly enough for you to have forgotten the issue :-) The issue
> was whether to treat underscores as letters in identifiers,
> removing the restrictions on the use of underscores. Actually
> the example most often used was a trailing underscore, but the
> general ability to mirror c identifiers such as a__b was also
> an issue.

   As near as I can remember, the four alternatives discussed were: no
change, allow trailing underscores, allow leading and trailing
underscores,
and treat underscore as if it was a letter.  Since no concensus
developed behind any change, the result was to stand pat.

   I personally think that the silliest part of this discussion ws on
allowing leading underscores, and I think that was what killed the most
general alternative.  But all that is detail. 
 
> > IMHO, the changed to the treatment of abstract made at a later
> > Boston meeting probably would not have been possible with the
> > syntax proposed by Jean Ichbiah.
> 
> That's plain wrong, or a misunderstanding, the notation
> 
>   class type x is record ...
> 
> as simply a syntactic transformation of
> 
>   type x is tagged record ...
> 
> is completely neutral with respect to such changes (indeed
> an Ada 95 compiler today could if it liked accept the first
> time as a source representation of the second form (though
> this kind of stretching of the notion of source representation
> is considered unsporting, even if allowed by the RM :-)

     The devil has always been in the details.  If the only difference
between Jean and Tucker's positions had been in the syntax, the online
discussions would not have been anywhere near as long.  In any case, the
particular feature that I was referring to was to have an abstract
formal private type and to derive another abstract type from it within
the generic specification, and finally derive a non-abstract type from
the instance:

    generic
      type Element is abstract tagged limited private;
    package Linked_Lists is
      type List_Element is abstract new Element with private;
      -- operations on lists...
    end Linked_Lists;

    ...

    package List_of_Strings is new      
Linked_Lists(Ada.Strings.Unbounded.Unbounded_String);

    type List_Element is new List_of_Strings.List_Element;

    This change made later, in Boston, required both syntax and semantic
changes, and I felt that it fit extremely well with the tagged type
grammar and semantics.  I do not feel that it would have fit nearly as
well with Jean's grammar, and would have required more semantic work. 
It was an extremely close call to even consider allowing the language
design team to even work on this, although the vote the next day to
adopt Tucker's proposal was overwhelming.  The amount of compiler change
was not an issue, but the amount of RM text to be changed was.  Since
this change was simplifying and unifying, it got in.  Would a similar
change to the class grammar have made it through?  I don't know.




  reply	other threads:[~2000-04-19  0:00 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-04-14  0:00 friend classes in ada95 Stefan Folkesson
2000-04-14  0:00 ` John J. Rusnak
2000-04-14  0:00 ` swhalen
2000-04-14  0:00 ` Florian Weimer
2000-04-14  0:00   ` Stefan Folkesson
2000-04-14  0:00 ` Julian Day
2000-04-14  0:00   ` Steve Folly
2000-04-14  0:00     ` Robert A Duff
2000-04-17  0:00       ` John J. Rusnak
2000-04-18  0:00         ` Vincent Marciante
2000-04-18  0:00           ` John Rusnak
2000-04-18  0:00       ` Steve Folly
2000-04-15  0:00 ` Jeff Carter
2000-04-16  0:00   ` Robert Dewar
2000-04-16  0:00     ` Jeff Carter
2000-04-16  0:00       ` David Botton
2000-04-17  0:00         ` Robert Dewar
2000-04-17  0:00           ` Hyman Rosen
2000-04-17  0:00             ` Robert Dewar
2000-04-16  0:00     ` David Botton
2000-04-17  0:00       ` Robert Dewar
2000-04-17  0:00         ` David Botton
2000-04-18  0:00           ` friend classes in ada95 (long) tmoran
2000-04-18  0:00             ` David Botton
2000-04-18  0:00               ` friend classes in ada95 Stanley R. Allen
2000-04-19  0:00               ` MI, was " tmoran
2000-04-19  0:00                 ` David Botton
2000-04-19  0:00               ` friend classes in ada95 (long) Brian Rogoff
2000-04-19  0:00                 ` Hyman Rosen
2000-04-19  0:00                   ` Brian Rogoff
2000-04-23  0:00                     ` Hyman Rosen
2000-04-23  0:00                       ` Brian Rogoff
2000-04-24  0:00                         ` Hyman Rosen
2000-04-25  0:00                           ` Brian Rogoff
2000-04-25  0:00                             ` Ole-Hjalmar Kristensen
2000-04-19  0:00                 ` David Botton
2000-04-17  0:00         ` friend classes in ada95 David Botton
2000-04-18  0:00       ` Geoff Bull
2000-04-18  0:00         ` Jean-Pierre Rosen
2000-04-18  0:00           ` John Rusnak
2000-04-19  0:00             ` Robert Dewar
2000-04-18  0:00           ` David Botton
2000-04-18  0:00           ` Pascal Obry
2000-04-18  0:00           ` tmoran
2000-04-18  0:00             ` John J. Rusnak
2000-04-19  0:00               ` Robert Dewar
2000-04-19  0:00               ` Jean-Pierre Rosen
2000-04-19  0:00               ` Geoff Bull
2000-04-19  0:00                 ` Robert Dewar
2000-04-19  0:00                 ` Ehud Lamm
2000-04-19  0:00                 ` David Botton
2000-04-19  0:00                   ` Robert Dewar
2000-04-19  0:00                   ` Robert Dewar
2000-04-20  0:00                     ` Geoff Bull
2000-04-19  0:00                 ` Jeff Susanj
2000-04-19  0:00                   ` tmoran
2000-04-19  0:00                   ` Bill Greene
2000-04-19  0:00                   ` Robert Dewar
2000-04-19  0:00                     ` Jeff Carter
2000-04-19  0:00                       ` Ray Blaak
2000-04-20  0:00                         ` Robert Dewar
2000-04-20  0:00                           ` Ray Blaak
2000-04-20  0:00                             ` Charles Hixson
2000-04-21  0:00                               ` Jean-Pierre Rosen
2000-04-29  0:00                                 ` Aidan Skinner
2000-04-29  0:00                                   ` Robert I. Eachus
2000-04-21  0:00                               ` Jon S Anthony
2000-04-20  0:00                         ` Jean-Pierre Rosen
2000-04-20  0:00                           ` Ray Blaak
2000-04-20  0:00                             ` Jean-Pierre Rosen
2000-04-24  0:00                               ` Ray Blaak
2000-04-20  0:00                           ` Robert Dewar
2000-04-20  0:00                             ` Brian Rogoff
2000-04-20  0:00                             ` BSCrawford
2000-04-20  0:00                             ` Jean-Pierre Rosen
2000-04-20  0:00                       ` Robert Dewar
2000-04-20  0:00                         ` Jeff Carter
2000-04-21  0:00                           ` Robert Dewar
2000-04-21  0:00                             ` Ken Garlington
2000-04-21  0:00                             ` Jon S Anthony
2000-04-22  0:00                               ` Robert Dewar
2000-04-18  0:00         ` David Botton
2000-04-17  0:00     ` Robert I. Eachus
2000-04-18  0:00       ` Robert Dewar
2000-04-19  0:00         ` Robert I. Eachus [this message]
2000-04-20  0:00           ` Robert Dewar
2000-04-20  0:00             ` Ray Blaak
2000-04-23  0:00             ` Robert I. Eachus
2000-04-19  0:00     ` Alfred Hilscher
2000-04-19  0:00       ` Ray Blaak
2000-04-19  0:00         ` Robert Dewar
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox