comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: about inheritance of subtypes and entities (such as constants) related to a type in the same package
Date: Thu, 31 May 2018 21:59:46 +0200
Date: 2018-05-31T21:59:46+02:00	[thread overview]
Message-ID: <pepk7g$1pu5$1@gioia.aioe.org> (raw)
In-Reply-To: 534965d3-e494-476b-8a91-6cf9f376c020@googlegroups.com

On 2018-05-31 20:53, Dan'l Miller wrote:
> On Thursday, May 31, 2018 at 12:37:07 PM UTC-5, Dmitry A. Kazakov wrote:
>> On 2018-05-31 04:29 PM, Dan'l Miller wrote:
>>> Conversely, subtyping in Ada does none of that type-extension stuff:  no
>>>   additional data/cardinality-of-the-members-of-the-set, no additional
>>   > routines/behavior, no arbitrary refinement of behavior of overridden/copied
>>>   routines/operations.  Instead, subtyping in Ada is strictly subjecting the
>>>   parent type to an additional membership-narrowing predicate, such as subset
>>   > in set theory.  Randy likewise spoke of membership on other branches of this
>>   > thread.
>>
>> Untrue. Ada 83 subtyping extends the supertype (base type), because it
>> exports operations defined on the subtype to the base type. Ada 83
>> subtyping introduces an equivalent type, which is both sub- and
>> supertype of the base.
> 
> If Ada83 untagged subtyping is type extension, please provide even a single characteristic that was extended/added/supplemented instead of contracted/subtracted/elided by the predicate.

Elementary:

    subtype Extension is Integer;
    procedure Extended_Operation (X : Extension) is null;
    X : Integer;
    Y : Extension;
begin
    Extended_Operation (X); -- See #1
    Extended_Operation (Y); -- See #2

The subtype Extension extends Integer with Extended_Operation, which has 
two separate meanings:

1. The base type Integer has now a new operation:

    new Integer interface = old Integer interface + Extended_Operation

2. The subtype Extension extends inherited Integer's set of operations:

    Extended interface = old Integer interface + Extended_Operation

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  reply	other threads:[~2018-05-31 19:59 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-26 16:14 about inheritance of subtypes and entities (such as constants) related to a type in the same package Mehdi Saada
2018-05-26 16:44 ` Mehdi Saada
2018-05-29 22:07   ` Randy Brukardt
2018-05-29 22:12 ` Randy Brukardt
2018-05-30  8:13   ` Dmitry A. Kazakov
2018-05-30 19:25     ` Randy Brukardt
2018-05-30 19:45       ` Dmitry A. Kazakov
2018-05-30 19:59         ` Randy Brukardt
2018-05-31  8:44           ` Dmitry A. Kazakov
2018-05-31 22:48             ` Randy Brukardt
2018-05-31 23:39               ` Mehdi Saada
2018-06-01  2:50                 ` Shark8
2018-06-01  7:35                 ` Dmitry A. Kazakov
2018-05-30 20:53   ` Dan'l Miller
2018-05-31  8:54     ` Dmitry A. Kazakov
2018-05-31 14:29       ` Dan'l Miller
2018-05-31 14:38         ` Dan'l Miller
2018-05-31 17:37         ` Dmitry A. Kazakov
2018-05-31 18:53           ` Dan'l Miller
2018-05-31 19:59             ` Dmitry A. Kazakov [this message]
2018-05-31 21:10               ` Dan'l Miller
2018-06-01  7:56                 ` Dmitry A. Kazakov
2018-06-01 14:01                   ` Dan'l Miller
2018-06-01 15:27                     ` Dmitry A. Kazakov
2018-05-31 22:45             ` Randy Brukardt
2018-05-31 23:50               ` Dan'l Miller
2018-06-01  7:38               ` Dmitry A. Kazakov
2018-05-31 22:34     ` Randy Brukardt
replies disabled

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