From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Musing on defining attributes and the ability to define an "abstract type X"-interface.
Date: Sun, 6 Aug 2017 09:04:33 +0200
Date: 2017-08-06T09:04:33+02:00 [thread overview]
Message-ID: <om6f25$i8l$1@gioia.aioe.org> (raw)
In-Reply-To: e8fcbf71-7432-4410-bae7-34943479bf81@googlegroups.com
On 2017-08-05 23:29, Shark8 wrote:
> On Saturday, August 5, 2017 at 11:18:44 AM UTC-6, Dmitry A. Kazakov wrote:
>> On 2017-08-05 18:51, Shark8 wrote:
>>
>>> This is about having an "abstract type", it's about getting at the
>>> underlying interface (general-sense, not OOP-sense)
>> First, it is the same sense. Second, Ada has abstract types (ADT is Ada 85).
>
> Why do you assert this?
To make terms straight. Abstract type is abstracting values. What you
(and I) want is abstract classes.
> It's demonstrably not the case that it's OOP because, as you point
> out, Ada 83 had the concepts w/o being an OOP language.
Ada 83 was object-based.
OOP is programming in terms of sets of types + having instances from all
set (=> dynamic polymorphism). ADT is a user-defined singular type. OOP
> ADT
> As to the second point, ADT is Abstract Data Type -- we're obviously
> *NOT* talking about data here so it doesn't apply... and even if it did,
> you *still* would have to illustrate how and ADT provides the sort of
> access/uniformity of interface being talked about.
I didn't say abstract type would.
>> The point is having hierarchies of types = classes.
>>
>> - Ada 85 had built-in classes.
>> - Ada 95 added classes of tagged types with representations built by -
>> record extension.
>> - Ada 2005 added classes of siblings sharing null representation (Ada
>> interfaces).
>
> And this proposal is about adding the ability to extend to the whole
> language without having to depend on (or be restricted to) tagged types.
You need tags in order to have class-wide instances and operations.
Built-in classes, e.g. like in Ada 83 did not allowed this. Polymorphism
induced by these classes was static and thus restricted to generics.
You don't need to always have a tag inside a type-specific object, that
is true.
>> There is a whole world beyond these.
>
> Even within the Ada language there's more here.
It reached its limits and falls apart due to lack of
abstractness/generality/universality.
I am not arguing with you. Surely Ada type system must be completely
reworked in a way that the current type system would be expressed in
terms of the new system.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2017-08-06 7:04 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-20 0:06 Musing on defining attributes and the ability to define an "abstract type X"-interface Shark8
2017-07-20 7:52 ` Dmitry A. Kazakov
2017-07-20 16:37 ` Shark8
2017-07-20 17:40 ` Dmitry A. Kazakov
2017-07-20 20:12 ` Jacob Sparre Andersen
2017-08-04 3:05 ` Shark8
2017-08-04 6:48 ` Simon Wright
2017-08-04 7:10 ` Dmitry A. Kazakov
2017-08-05 0:17 ` Randy Brukardt
2017-08-05 6:25 ` Dmitry A. Kazakov
2017-08-05 16:51 ` Shark8
2017-08-05 17:18 ` Dmitry A. Kazakov
2017-08-05 21:29 ` Shark8
2017-08-06 7:04 ` Dmitry A. Kazakov [this message]
2017-08-07 23:06 ` Randy Brukardt
2017-08-08 17:28 ` Shark8
2017-08-09 1:12 ` Randy Brukardt
2017-08-09 18:17 ` G.B.
2017-08-07 23:12 ` Randy Brukardt
2017-08-08 8:10 ` Dmitry A. Kazakov
2017-08-09 0:44 ` Randy Brukardt
2017-08-09 6:55 ` Dmitry A. Kazakov
2017-08-09 23:22 ` Randy Brukardt
2017-08-10 7:02 ` Dmitry A. Kazakov
2017-08-11 0:40 ` 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