From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,45abc3b718b20aa3 X-Google-Attributes: gid103376,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: Two ideas for the next Ada standard Date: 1996/09/03 Message-ID: #1/1 X-Deja-AN: 178176143 references: <5009h5$ir4@netline-fddi.jpl.nasa.gov> <503sbo$j45@goanna.cs.rmit.edu.au> <507akg$t9u@krusty.irvine.com> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada Date: 1996-09-03T00:00:00+00:00 List-Id: Laurent said " I was refering to the fact that in Ada 83, put aside efficiency issues, you could have completly removed the notion of private part, and put everything in the body without changing (too much) the language, since nothing can gain visibility to the body (or to the private part), so this private part could be considered as part of the body. " OK, that makes sense. I had not realized that you (and Bob?) were suggesting completely removing the notion of private part in Ada 83. I agree that is technically sensible, but I find the notion of a private part useful from an abstraction point of view in any case, even discounting your quite correct observation that the private part plays an important new role in Ada 95. In fact in Ada 95, one of the things I found took some learning was that private parts do indeed play a completely different role. If you simply think of private parts as completing private stuff in the spec, and then you see that child packages have access to this, that's interesting, but misses a very important and powerful aspect of Ada 95 that has no analog in Ada 83. In Ada 95, it makes sense to put all sorts of stuff in private parts, including types and subprograms that have nothing directly to do with what is in the spec. You can even imagine an empty spec with a big private part. The reason that all this stuff is in a private part is to limit visibility to clients and permit visibility only to children. For example, the official spec of package Ada is empty, but it is quite reasonable for an implementation to add a private part to this package that contains stuff needed by children of Ada in a particular implementation. The same is true for System. GNAT does not do this, but probably it should ...