comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Extending a third party tagged type while adding finalization
Date: Tue, 5 Dec 2017 22:29:41 +0100
Date: 2017-12-05T22:29:41+01:00	[thread overview]
Message-ID: <p07343$1tst$1@gioia.aioe.org> (raw)
In-Reply-To: p071u9$30m$1@franka.jacob-sparre.dk

On 2017-12-05 22:09, Randy Brukardt wrote:
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
> news:p04d5g$6jd$1@gioia.aioe.org...
>> On 2017-12-04 21:54, Randy Brukardt wrote:
>>
>>> The sort things that can't afford to be controlled are those that aren't
>>> really ADTs anyway (think coordinates of a windows).
>>
>> What? Window coordinates are a perfect example of ADT. There are lots of
>> quite specific operations defined on coordinates which are beyond normal
>> arithmetic: scaling, rotation, moving, relative to absolute conversions,
>> logical to physical conversions, coordinate systems, scalar and vector
>> products, coordinate translation ... the list is almost infinite.
> 
> ADT = "abstract data type". And there is nothing "abstract" about
> coordinates, where you usually want to use an aggregate of X and Y values to
> create them. Just because the type isn't private doesn't mean that you can't
> have operations on them (Janus/Ada internally has essentially no private
> types, but there sure are a lot of operations :-).

I don't know your definition of ADT, but mine is in agreement with 
Wikipedia:

"In computer science, an abstract data type (ADT) is a mathematical 
model for data types, where a data type is defined by its behavior 
(semantics) from the point of view of a user of the data, specifically 
in terms of possible values, possible operations on data of this type, 
and the behavior of these operations. This contrasts with data 
structures, which are concrete representations of data, and are the 
point of view of an implementer, not a user."

> The sorts of things that one doesn't want to make controlled also tend to be
> the sorts of things that one doesn't want to make private. Ergo, my advice
> above. As always, YMMV.

Initialization and finalization are properties of ADT only when these 
are related to its behavior/semantics. The semantics of coordinates does 
not require the implementation to provide any initialization or 
finalization beyond default. That does not make it less ADT.

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

  reply	other threads:[~2017-12-05 21:29 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-22 12:43 Extending a third party tagged type while adding finalization Jere
2017-11-22 16:42 ` AdaMagica
2017-11-26 17:33   ` Jere
2017-11-26 18:15     ` Dmitry A. Kazakov
2017-11-26 19:31       ` Jere
2017-11-27  9:46     ` AdaMagica
2017-11-27 12:56       ` Jere
2017-11-27 15:00         ` AdaMagica
2017-11-27 16:38           ` Jere
2017-11-27 18:37             ` AdaMagica
2017-11-27 19:53               ` Jere
2017-11-28 11:48                 ` AdaMagica
2017-12-03  2:22                   ` Jere
2017-12-03 21:53               ` Robert Eachus
2017-12-04  7:58                 ` Dmitry A. Kazakov
2017-12-04 14:59                   ` Robert Eachus
2017-12-04 15:39                     ` Dmitry A. Kazakov
2017-11-27 18:10     ` Shark8
2017-11-27 19:56       ` Jere
2017-11-28  1:55       ` Randy Brukardt
2017-12-03  2:47         ` Jere
2017-12-03  9:29           ` Dmitry A. Kazakov
2017-12-03 15:10             ` AdaMagica
2017-12-03 16:39               ` Dmitry A. Kazakov
2017-12-03 19:34             ` AdaMagica
2017-12-03 19:41               ` Dmitry A. Kazakov
2017-12-04 12:38                 ` AdaMagica
2017-12-04 13:19                   ` AdaMagica
2017-12-04 13:55                     ` Dmitry A. Kazakov
2017-12-04 15:44                       ` AdaMagica
2017-12-04 16:19                         ` Dmitry A. Kazakov
2017-12-04 20:54           ` Randy Brukardt
2017-12-04 21:02             ` Dmitry A. Kazakov
2017-12-05 21:09               ` Randy Brukardt
2017-12-05 21:29                 ` Dmitry A. Kazakov [this message]
2017-12-07  1:13                   ` Randy Brukardt
2017-12-07  8:36                     ` Dmitry A. Kazakov
2017-12-07 23:22                       ` Randy Brukardt
2017-12-08  9:30                         ` Dmitry A. Kazakov
2017-12-09  0:17                           ` Randy Brukardt
2017-12-11  9:03                             ` Dmitry A. Kazakov
2017-12-11 22:42                               ` Randy Brukardt
2017-12-12 16:11                                 ` AdaMagica
2017-12-12 20:08                               ` G. B.
2017-12-12 20:32                                 ` Dmitry A. Kazakov
replies disabled

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