comp.lang.ada
 help / color / mirror / Atom feed
From: Samuel Mize <smize@imagin.net>
Subject: Re: Why both "with" and "use"?
Date: 1999/02/16
Date: 1999-02-16T00:00:00+00:00	[thread overview]
Message-ID: <7aciq3$1vu@news3.newsguy.com> (raw)
In-Reply-To: m3ogmxuctb.fsf@mheaney.ni.net

Matthew Heaney <matthew_heaney@acm.org> wrote:
> "Pat Rogers" <progers@NOclasswideSPAM.com> writes:

>> A package serves more of a central purpose in Ada 95, especially when
>> it exports a tagged type declaration.
>> 
>> The big difference (or, at least one difference) between Java packages
>> and Ada packages is that the combination of an Ada package and a
>> private type defines an Abstract Data Type.

> I wouldn't quite phrase it that way.  With respect to the declaration of
> a type (and I mean _any_ kind of type, not just ADTs),

You're absolutely right, for types.

I believe that Pat is defining a coding construct, which he calls an
ADT.  This is a free-standing, completely encapsulated type.  It
includes its user-visible values, operations, and exceptions, and
nothing else, and has a syntax-level "wall" around it.

This construct can be directly supported by combining Ada's types and
packages.  I believe Pat is saying that the same is not true of Java's
types and packages.

Heaven knows there are lots of other ways to use types and packages.


> Perhaps I am being pedantic,

I don't think so.


>but I don't regard a package as part of a
> type.  I regard the type as its name, values, and (primitive)
> operations.  The package is just syntactic overhead necessary to
> identify the primitive operations, but the package itself is not part of
> the type.

That's the point.  A type isn't necessarily encapsulated.  Its definition
can be jumbled together with the definitions of othere types, in ways that
create semantic linkages.  Encapsulation is the job of a package.

This is Ada's building-block approach.  If you want your type to be
a completely encapsulated "ADT," slap it into its own package.  If
not, don't.

The package is part of the ADT design construct, but certainly not part
of the type.


> When they give me a bag at the supermarket to hold my groceries, it's the
> groceries that I am interested in, not the bag.  If I were to make a
> list of the things I picked up at the store, I probably wouldn't include
> the bag in that list.

To strain the analogy a little, suppose you got groceries for three
people.  You might put them in separate bags, for ease of handling.
From that viewpoint, the list might be "my groceries, Pat's groceries,
and Sam's groceries."  You would list neither the bags nor the contents
at that level of abstraction.

Best,
Sam Mize




  parent reply	other threads:[~1999-02-16  0:00 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-02-13  0:00 Why both "with" and "use"? Mike Silva
1999-02-13  0:00 ` Pat Rogers
1999-02-13  0:00   ` bill
1999-02-13  0:00     ` Matthew Heaney
1999-02-13  0:00     ` Pat Rogers
1999-02-13  0:00       ` Matthew Heaney
1999-02-13  0:00         ` bill
1999-02-14  0:00         ` Pat Rogers
1999-02-14  0:00           ` Bob Collins
1999-02-14  0:00             ` Pat Rogers
1999-02-16  0:00         ` Samuel Mize [this message]
1999-02-15  0:00     ` Jean-Pierre Rosen
1999-02-15  0:00       ` Ed Falis
1999-02-16  0:00         ` Jean-Pierre Rosen
1999-02-13  0:00 ` Corey Minyard
1999-02-13  0:00   ` mike
1999-02-13  0:00   ` Matthew Heaney
1999-02-13  0:00     ` Tom Moran
1999-02-14  0:00       ` Matthew Heaney
1999-02-13  0:00     ` bill
1999-02-14  0:00       ` dewar
1999-02-14  0:00       ` Matthew Heaney
1999-02-14  0:00       ` dewar
1999-02-16  0:00     ` Samuel Mize
1999-02-17  0:00       ` Jean-Pierre Rosen
1999-02-18  0:00         ` robert_dewar
1999-02-18  0:00           ` Jean-Pierre Rosen
1999-02-18  0:00             ` robert_dewar
1999-02-19  0:00               ` Jean-Pierre Rosen
1999-02-18  0:00         ` dennison
1999-02-18  0:00           ` robert_dewar
1999-02-19  0:00             ` bourguet
1999-02-19  0:00               ` robert_dewar
1999-02-19  0:00             ` dennison
1999-02-19  0:00             ` Robert I. Eachus
1999-02-19  0:00               ` robert_dewar
1999-02-23  0:00                 ` Robert I. Eachus
1999-02-19  0:00               ` Brian Hanson
1999-02-19  0:00                 ` robert_dewar
1999-02-19  0:00           ` Matthew Heaney
1999-02-19  0:00             ` dennison
1999-02-19  0:00               ` robert_dewar
1999-02-19  0:00                 ` Ada multiple string personalities. why so many? mike
1999-02-19  0:00                   ` robert_dewar
1999-02-19  0:00                   ` Tom Moran
1999-02-19  0:00                     ` Mike Silva
1999-02-22  0:00                       ` Brian Hanson
1999-02-19  0:00                 ` Why both "with" and "use"? dennison
1999-02-19  0:00                   ` robert_dewar
1999-02-17  0:00       ` Matthew Heaney
1999-02-17  0:00       ` Jean-Pierre Rosen
1999-02-17  0:00       ` dennison
1999-02-17  0:00         ` Samuel Mize
1999-02-17  0:00         ` Nick Roberts
1999-02-15  0:00 ` Jean-Pierre Rosen
replies disabled

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