comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Extension of non-limited type needs limited component
Date: Fri, 15 Nov 2002 22:09:31 GMT
Date: 2002-11-15T22:09:31+00:00	[thread overview]
Message-ID: <wccbs4q8oys.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 6bd9tuc40p68a86rlur3hai1qlv54i8985@4ax.com

Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> writes:

> In an OO language like Ada 95 is, "limited" makes little sense,
> because it covers only one of many useful alternatives.

But non-limited/limited does not just mean assignment
allowed/disallowed.  How do you propose to deal with all the other
things controlled by this distinction?  For example:

    Non-limited types can have unconstrained aliased components; limited
    types cannot.

    Limited types can have access discriminants; non-limited types
    cannot.

    Limited types can have limited components (like tasks and protected
    objects); non-limited types cannot.

    The current instance of a limited type is aliased, so you can say
    "T'Unchecked_Access" inside type T, to make a pointer to the current
    object of type T.  You can't do that for non-limited.

    (Most) limited types are guaranteed to be passed by reference;
    that's not true for non-limited.

    A function can construct a new object of a non-limited type, and
    return it.  You can't do that for (most) limited types.

The point is that there are some things you can do for limited that you
can't do for non-limited, and vice-versa, so neither is a subset of the
other.  Therefore, you can't derive a limited type from a non-limited
type, nor vice-versa.

By the way, have you read the AARM annotations that explain why we
didn't allow user-defined ":=" procedures?  We certainly wanted to,
but we couldn't figure out how to make it work, so we invented Adjust,
which is not as powerful.  I'd be interested in hearing better ideas
(even though it's probably too late).

- Bob



  reply	other threads:[~2002-11-15 22:09 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-13 10:03 Extension of non-limited type needs limited component Mike
2002-11-13 12:06 ` Jean-Pierre Rosen
2002-11-14  9:26   ` Mike
2002-11-14 11:43     ` David C. Hoos, Sr.
2002-11-14 12:33     ` Jean-Pierre Rosen
2002-11-14 14:27       ` Dmitry A. Kazakov
2002-11-14 19:25         ` Randy Brukardt
2002-11-15 10:04           ` Dmitry A. Kazakov
2002-11-15 22:09             ` Robert A Duff [this message]
2002-11-16 12:39               ` Dmitry A. Kazakov
2002-11-16 16:15                 ` Robert A Duff
2002-11-17 11:14                   ` Dmitry A. Kazakov
2002-11-17 12:26               ` Dale Stanbrough
2002-11-18 20:33                 ` Randy Brukardt
2002-11-18 21:48               ` Eric
2002-11-19 14:38               ` Eric
2002-11-15 21:41           ` Robert A Duff
2002-11-16  3:54             ` Randy Brukardt
2002-11-15  0:30         ` Robert A Duff
2002-11-15 10:22           ` Dmitry A. Kazakov
2002-11-15 21:56             ` Robert A Duff
2002-11-16 12:39               ` Dmitry A. Kazakov
2002-11-14 23:39     ` Robert A Duff
2002-11-15 21:51       ` Mike
2002-11-13 14:28 ` Robert A Duff
2002-11-14  9:33   ` Mike
2002-11-14  9:35     ` Lutz Donnerhacke
2002-11-14 21:41     ` Robert A Duff
  -- strict thread matches above, loose matches on Subject: below --
2002-11-15 10:47 Grein, Christoph
2002-11-15 12:12 ` Dmitry A. Kazakov
2002-11-15 13:29   ` Jean-Pierre Rosen
2002-11-15 14:34     ` Dmitry A. Kazakov
2002-11-15 21:26     ` Robert A Duff
replies disabled

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