comp.lang.ada
 help / color / mirror / Atom feed
From: Dmitry A. Kazakov <mailbox@dmitry-kazakov.de>
Subject: Re: Imitation is the sincerest form of flattery
Date: Fri, 21 Mar 2003 09:44:35 +0100
Date: 2003-03-21T09:44:35+01:00	[thread overview]
Message-ID: <vqil7v81l8p8ocbv2ke9ectl8l33rr3gs8@4ax.com> (raw)
In-Reply-To: 4dkea.75440$gi1.38045@nwrdny02.gnilink.net

On Thu, 20 Mar 2003 14:27:12 GMT, "Frank J. Lhota"
<NOSPAM.lhota.adarose@verizon.net> wrote:

>"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
>news:p2vi7vs64p33mpnbsfsn43cvh72l44tm95@4ax.com...
>> To inherit the type interface. For example, an array type implemented
>> by a record type:
>>
>>    -- This is not Ada!
>>    type Unbounded_String is
>>       private array (Integer range <>) of Character;
>>
>> private
>>    type Unbounded_String is record
>>       ...
>>    end record;
>>    -- Definition of implemented abstract array opeartions follows
>
>I'm a little unclear about what you're asking for here. In your envisioned
>vision of Ada, what does this code do?

A private implementation of an array type. If the language have had
full ADT there would be no need predefined Unbounded_String. Or
consider the following:

type Sparse_Matrix is
   private array (Integer range <>; Integer <>) of Element;

It has an array interface, but internally it is also a record type
using a list to keep the array elements.

>How would it differ from doing
>something like this:
>
>   -- This is Ada!
>   type Unbounded_String ( First, Last : Integer ) is private;
>
>private
>   type Unbounded_String is record
>      ...
>   end record;

The above isn't an array. You cannot use it where an array is
expected. It has no 'First, 'Last, no slices etc.

-----
The problem with ADT in Ada is that technically there is only two (*)
type interfaces you can inherit from (implement privately):

type ... is private;
type ... is limited private;

At the same time Ada's set of built-in interfaces is far more richer:

type ... is access ...;
type ... is delta ...;
type ... is mod ...;
type ... is array ...;
type ... is record ...;
protected type ...;
task type ...;

etc.

In my view to fully support ADT would mean that any of such type
interfaces would be available for private implementation.

-----
(*) I intentionally omit type ... is tagged ..., because I believe
that *all* types have to be tagged.

---
Regards,
Dmitry Kazakov
www.dmitry-kazakov.de



  reply	other threads:[~2003-03-21  8:44 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-14 17:22 Imitation is the sincerest form of flattery Robert C. Leif
2003-03-14 17:57 ` Warren W. Gay VE3WWG
2003-03-14 18:16 ` chris.danx
2003-03-14 18:17 ` Hyman Rosen
2003-03-15 14:18   ` Georg Bauhaus
2003-03-16  1:06     ` Hyman Rosen
2003-03-18 10:37       ` Georg Bauhaus
2003-03-18 15:34         ` Dmitry A. Kazakov
2003-03-19 11:12           ` Georg Bauhaus
2003-03-20  8:42             ` Dmitry A. Kazakov
2003-03-20 14:27               ` Frank J. Lhota
2003-03-21  8:44                 ` Dmitry A. Kazakov [this message]
2003-03-21 17:16                   ` Pascal Obry
2003-03-22  9:05                     ` Dmitry A. Kazakov
2003-03-22 14:11                       ` Pascal Obry
2003-03-22 23:12                         ` AG
2003-03-23  9:01                           ` Dmitry A. Kazakov
2003-03-23  8:51                         ` Dmitry A. Kazakov
2003-03-24 16:52                           ` Hyman Rosen
2003-03-24 18:10                             ` Dmitry A. Kazakov
2003-03-24 18:33                               ` Hyman Rosen
2003-03-25  5:04                                 ` Amir Yantimirov
2003-03-25 19:55                                 ` Dmitry A. Kazakov
2003-03-25 20:22                                   ` Hyman Rosen
2003-03-26 13:02                                     ` Dmitry A. Kazakov
2003-03-26 15:06                                       ` Hyman Rosen
2003-03-26 16:21                                         ` Dmitry A. Kazakov
2003-03-26 17:00                                           ` Hyman Rosen
2003-03-26 18:21                                             ` Bill Findlay
2003-03-26 18:40                                               ` Hyman Rosen
2003-03-22 10:01                   ` Amir Yantimirov
2003-03-23  8:41                     ` Dmitry A. Kazakov
2003-03-24  4:53                       ` Amir Yantimirov
2003-03-24 18:10                         ` Dmitry A. Kazakov
2003-03-25  5:48                           ` Amir Yantimirov
2003-03-25 15:53                             ` Frank J. Lhota
2003-03-25 16:44                               ` Robert A Duff
2003-03-25 18:24                                 ` Frank J. Lhota
2003-03-25 20:06                                   ` Dmitry A. Kazakov
2003-03-27 19:45                                     ` Frank J. Lhota
2003-03-27 21:25                                       ` Pascal Obry
2003-03-28 13:34                                       ` Dmitry A. Kazakov
2003-04-01 14:38                                         ` Frank J. Lhota
2003-04-02  7:37                                           ` Dmitry A. Kazakov
2003-03-26  7:48                                 ` Amir Yantimirov
2003-03-26 13:35                                   ` Dmitry A. Kazakov
2003-03-26  7:32                               ` Amir Yantimirov
2003-03-20 23:28               ` Matthew Heaney
2003-03-21  8:49                 ` Dmitry A. Kazakov
2003-03-21 21:07                   ` Georg Bauhaus
2003-03-22  9:04                     ` Dmitry A. Kazakov
2003-03-22 10:05                       ` AG
2003-03-22 15:25                         ` Georg Bauhaus
2003-03-22 19:27                           ` AG
2003-03-22 21:45                             ` Vinzent Hoefler
2003-03-22 22:28                               ` AG
2003-03-23 23:47                     ` Robert A Duff
2003-03-28 16:34                       ` Georg Bauhaus
2003-03-18 15:58         ` Hyman Rosen
2003-03-19 11:05           ` Georg Bauhaus
2003-03-23 11:31       ` Florian Weimer
2003-03-23 23:39         ` Hyman Rosen
2003-03-15 12:52 ` Florian Weimer
replies disabled

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