comp.lang.ada
 help / color / mirror / Atom feed
From: Dmitry A. Kazakov <mailbox@dmitry-kazakov.de>
Subject: Re: The "()" operator revisited.
Date: Tue, 13 Jan 2004 10:24:22 +0100
Date: 2004-01-13T10:24:22+01:00	[thread overview]
Message-ID: <dmc700tmurmei4u19nof44803bv19f6d6o@4ax.com> (raw)
In-Reply-To: raBMb.9128$Qq.7455@nwrdny01.gnilink.net

On Mon, 12 Jan 2004 17:53:27 GMT, "Frank J. Lhota"
<NOSPAM.lhota.adarose@verizon.net> wrote:

>Last June, I proposed that in order to provide an abstract array capability,
>Ada 0y should support  user-defined "()" and "():="operators. Since this
>issue has come up again, I would like to summarize and expand on this
>proposal.
>
>Note: the following discussion probably has an insufficient amount of
>legalese to satisfy language lawyers. Once we've thrashed out these ideas,
>I'll be happy to work with anyone with formalizing this proposal.

[...skipped...]

The major question. Would it really be an abstract array? It seems it
would not. More specifically, how would it be matched against a formal
generic array parameter? To be matched one need, in addition to
indexing, also define slices, index ranges and array attributes. This
means that the proposal should include a way to define all that. Then
of course, there has to be a syntactic suggar telling the compiler
that the type being declared is an abstract array, so that the
compiler could check that (), slices, ranges, attributes are indeed
implemented. Summarizing:

1. There has to be a formal definition of the abstract array interface

2. There should be a specification that a type implements that
interface

3. The compiler should check that

There are many potential problems with all that:

1. Index ranges should be first-class objects with a type.
2. To implement slices one would probably need parameters/results of
anonymous array types.
3. To implement attributes one need to expose them as primitive
operations
4. To check its interface an abstract array type should be tagged,
otherwise abstract array operations will not be primitive.

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



  parent reply	other threads:[~2004-01-13  9:24 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-12 17:53 The "()" operator revisited Frank J. Lhota
2004-01-12 18:38 ` Frank J. Lhota
2004-01-12 22:26 ` Robert A Duff
2004-01-13 16:29   ` Frank J. Lhota
2004-01-13  9:24 ` Dmitry A. Kazakov [this message]
2004-01-13 16:44   ` Frank J. Lhota
2004-01-13 17:13     ` Hyman Rosen
2004-01-13 22:27     ` Randy Brukardt
2004-01-14  2:30     ` Stephen Leake
2004-01-14  9:04     ` Dmitry A. Kazakov
2004-01-17  0:15       ` Kenneth Almquist
2004-01-17 21:15         ` Robert A Duff
2004-01-19 10:25         ` Dmitry A. Kazakov
2004-01-13 13:13 ` Marin David Condic
2004-01-13 17:38   ` Warren W. Gay VE3WWG
2004-01-13 19:09     ` Robert A Duff
2004-01-15 17:30       ` Warren W. Gay VE3WWG
2004-01-15 18:11         ` Robert A Duff
2004-01-15 19:36           ` tmoran
2004-01-15 20:35             ` Robert A Duff
2004-01-17  5:48               ` Robert I. Eachus
2004-01-16  1:52           ` Redefining := (was: The "()" operator revisited.) Jeffrey Carter
2004-01-16 21:37             ` Randy Brukardt
2004-01-19 11:33               ` Dmitry A. Kazakov
2004-01-16  3:11           ` The "()" operator revisited Mark A. Biggar
2004-01-16 13:28             ` Hyman Rosen
2004-01-16 16:19             ` Robert A Duff
2004-01-16 18:09             ` Warren W. Gay VE3WWG
2004-01-16 13:56           ` Frank J. Lhota
2004-01-16 16:14             ` Robert A Duff
2004-01-16 21:29               ` Frank J. Lhota
  -- strict thread matches above, loose matches on Subject: below --
2004-01-13 17:46 amado.alves
2004-01-13 22:21 ` Randy Brukardt
2004-01-13 17:53 amado.alves
2004-01-14  9:09 ` Dmitry A. Kazakov
2004-01-14 12:55   ` Georg Bauhaus
2004-01-14 15:05     ` Dmitry A. Kazakov
2004-01-15  1:21       ` Georg Bauhaus
2004-01-15  8:50         ` Dmitry A. Kazakov
2004-01-15 11:09           ` Georg Bauhaus
2004-01-15 13:23             ` Dmitry A. Kazakov
2004-01-17  6:26               ` Robert I. Eachus
2004-01-14 13:04   ` Hyman Rosen
2004-01-14 15:22 amado.alves
2004-01-14 16:16 ` 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