comp.lang.ada
 help / color / mirror / Atom feed
From: ncohen@watson.ibm.com (Norman H. Cohen)
Subject: Re: ADA Objects Help!
Date: 20 Jan 1995 17:22:29 GMT
Date: 1995-01-20T17:22:29+00:00	[thread overview]
Message-ID: <3forgl$11cd@watnews1.watson.ibm.com> (raw)
In-Reply-To: Mats.Weber-1901951739360001@mlma11.matrix.ch

In article <Mats.Weber-1901951739360001@mlma11.matrix.ch>,
Mats.Weber@matrix.ch (Mats Weber) writes: 

|> In article <3fhggr$11dp@watnews1.watson.ibm.com>, ncohen@watson.ibm.com wrote: 
|>
|> > Because, unlike task units, package units export declarations for use
|> > outside.
|>
|> Well, tasks export entries, which are usable outside just like subprograms
|> exported from packages.

True enough.  The entries are per-type entities, whose declarations are
elaborated once for each task type.  (This is noticeable by the fact that
entry-family discrete ranges are elaborated once per task type, not once
for each object of the type.) Entities declared in the declarative part
of the task body are per-object entities, whose declarations are
elaborated once per object.

The distinction I was trying to make (alhtough I wasn't very clear about
it) was about per-object entities: The entities declared in a package-
type declaration would be exported by each object in the package type,
unlike the per-object entities of a task type.

|> > Each time an object of a package type is created, these
|> > declarations would have to be elaborated again, so that identically
|> > declared entities exported by different objects of a package type would
|> > be distinct.  For example: 
|> >
|> >    package type PT is  -- THIS IS NOT VALID ADA XX for XX <= 95 !!!!!!
|> >       N: Integer := [some nonstatic expression];
|> >       type T is array (1 .. N) of Integer;
|> >    end PT;
|> >
|> >    Package_1, Package_2: PT;
|>
|> The declaration for N does not cause a problem. It would be treated just
|> like a record component declaration with a default initial value (i.e. the
|> nonstatic expression is evaluated at each elaboration of a PT).

This is beginning to look suspiciously like a generic package.  Generic
templates are the only program units in Ada with the property that
declarations inside the program-unit declaration are not elaborated as
part of the elaboration of the program-unit declaration.

|> Type, subtype, and exception declarations would not be allowed within
|> package types. We don't want dynamic creation of types.

The term package type is beginning to look like a misnomer.  The
instances of these types are far more restricted than packages are.
In fact they are even more restricted than generic packages.
A package that cannot provide types is little more than a record.

|> > Package_1.T and Package_2.T are distinct types.  The same applies to any
|> > interesting entity exported by Package_1 and Package_2.  So what do we
|> > gain by defining them to belong to the same type?
|>
|> What do you mean by `interesting entity' ?

Just about anything other than renamed views and named numbers.  In
particular, if there is a subprogram with an operation of a type declared
in the package-type declaration, there is a distinct subprogram, with a
distinct profile, for each object of the package type.  That should make
overloading resolution interesting.  (There's that word "interesting"
again, in a different sense this time!)  Thus you are right to rule out
type declarations in package-type declarations, but it makes package
types little more than record types.

|> I have just completed my thesis and part of it is a proposal for object
|> oriented Ada based on package types.

Aren't you glad I wasn't on your thesis review committee? ;-)

--
Norman H. Cohen    ncohen@watson.ibm.com



  parent reply	other threads:[~1995-01-20 17:22 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3f9g1u$j4m@nps.navy.mil>
     [not found] ` <D2H5un.FEr@nntpa.cb.att.com>
     [not found]   ` <3fcs59$70s@nps.navy.mil>
     [not found]     ` <3ff186$c19@gnat.cs.nyu.edu>
1995-01-17 17:57       ` ADA Objects Help! Mats Weber
1995-01-18 17:47         ` Robert Dewar
1995-01-20 16:04           ` Mats Weber
1995-01-21 18:59             ` Robert Dewar
1995-01-23 12:03               ` Robb Nebbe
1995-01-25 20:44                 ` Mats Weber
1995-01-25 20:44               ` Mats Weber
1995-01-27  4:03                 ` Robert Dewar
1995-01-26  3:36           ` swdecato
     [not found]         ` <3fhggr$11dp@watnews1.watson.ibm.com>
     [not found]           ` <Mats.Weber-1901951739360001@mlma11.matrix.ch>
1995-01-20 17:22             ` Norman H. Cohen [this message]
1995-01-23 16:37               ` Mats Weber
1995-01-25 20:44               ` Mats Weber
1995-01-27  4:05                 ` Robert Dewar
1995-01-19 11:57   ` Robert M. Wilkinson
1995-01-22 18:06     ` Robert Dewar
1995-01-24 22:18       ` Norman H. Cohen
1995-01-25  1:26         ` swdecato
1995-01-25 18:18           ` Bob Kitzberger
1995-01-25 20:11             ` Bob Kitzberger
1995-01-26 15:31           ` Norman H. Cohen
     [not found]           ` <D330pK.M1@nntpa.cb.att.com>
1995-01-28 21:46             ` John DiCamillo
1995-01-30 14:13               ` David Emery
1995-01-30 22:50               ` Subject/Object Confusion Syndrome [was: Ada Objects Help] John Volan
1995-02-01 14:33                 ` Norman H. Cohen
     [not found]                   ` <D3DpJu.4nK@swlvx2.msd.ray.com>
     [not found]                     ` <D3H7J3.B2x@inmet.camb.inmet.com>
1995-02-06 10:32                       ` Robb Nebbe
     [not found]                     ` <3gu21g$ch@portal.gmu.edu>
1995-02-06 14:01                       ` John Volan
1995-02-01 22:37                 ` Maarten Landzaat
     [not found]                   ` <3h1ahp$gf5@gnat.cs.nyu.edu>
     [not found]                     ` <3h3jmp$1h1@Starbase.NeoSoft.COM>
1995-02-07 14:39                       ` John Volan
1995-02-09  2:25                         ` David Weller
1995-01-29 18:19             ` ADA Objects Help! mat
     [not found]               ` <1995Feb5.180601@hobbit>
1995-02-07 23:04                 ` Subject/Object Confusion Syndrome [was: Ada Objects Help] John Volan
1995-01-25  9:48       ` ADA Objects Help! mat
1995-01-23 10:01     ` calling syntax (was Re: Ada Objects) Robb Nebbe
1995-01-23 18:08       ` John DiCamillo
1995-01-23 23:47     ` ADA Objects Help! Ed Osinski
1995-01-25  6:19       ` David O'Brien
     [not found] ` <1995Jan16.132400@lglsun.epfl.ch>
     [not found]   ` <131279@cup.portal.com>
1995-01-20 16:52     ` Ada " Robert Dewar
1995-01-22 18:30       ` Tucker Taft
1995-01-24 22:09         ` Jacob Sparre Andersen
1995-01-26 16:20           ` Robert A Duff
1995-01-27 17:04             ` Robert A Duff
1995-01-27 19:58             ` Tucker Taft
1995-01-20 17:41   ` Mark S. Hathaway
1995-01-23 10:41     ` Robb Nebbe
1995-01-23 11:53     ` Stephane Barbey
replies disabled

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