comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Ada202X: Easy to use "UML private"-like components
Date: Mon, 24 Jun 2013 09:16:34 +0200
Date: 2013-06-24T09:16:34+02:00	[thread overview]
Message-ID: <k32sqc8hss4r$.14d3n8qneksz7$.dlg@40tude.net> (raw)
In-Reply-To: wccr4fsmm7s.fsf@shell01.TheWorld.com

On Sun, 23 Jun 2013 19:38:47 -0400, Robert A Duff wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> 
>> On Sun, 23 Jun 2013 11:15:15 -0400, Robert A Duff wrote:
>>
>>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
>>> 
>>>> ... or there should be no generics.
>>>>
>>>> The kludge here rather is generics and inlining, both basically are macro
>>>> expansions.
>>> 
>>> Semantics defined by macro-expansion is confusing, and should be
>>> avoided.  I'd prefer to have generic types rather than generic
>>> packages, and don't use macro-expansion semantics.
>>
>> Still macro expansion it is (if meant as textual substitution).
> 
> No, as I said above, "don't use macro-expansion semantics"!
> One can have "Sequence of Integer" and "Sequence of Whatever"
> without any macro-expansion/textual-substitution semantics.
> And with full type safety (can't pluck a Mumble out of a
> "Sequence of Integer").
> 
>> It is no matter how you reinterpret the expanded text: as a package, as a
>> type, as a statement, identifier, declaration etc. Generic types would be
>> no better than generic packages.
> 
> There should be no "expanded text" in my view.  Maybe that's what
> you mean when you say "no generics", but then you should say
> "no Ada-style generics" (or C++-style templates).

OK, but if not "expansion" then Ada already has such types: discriminated
subtypes and tagged types. Both are dynamically parametric types. Neither
requires looking into the bodies.

Maybe they could be augmented in order to deal with more complex kinds of
parametrization, e.g. for container types (sequence of Integer indexed by
String). But again, please, without opening up the bodies.

You don't need the body unless you "expand".

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

  reply	other threads:[~2013-06-24  7:16 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-21  8:43 Ada202X: Easy to use "UML private"-like components Martin
2013-06-21  9:23 ` Dmitry A. Kazakov
2013-06-21  9:33   ` Martin
2013-06-21 10:14     ` G.B.
2013-06-21 11:19       ` Martin
2013-06-21 14:51     ` Dmitry A. Kazakov
2013-06-22 11:16       ` Martin
2013-06-22 12:10         ` Dmitry A. Kazakov
2013-06-21 18:36 ` Robert A Duff
2013-06-22 16:41   ` Niklas Holsti
2013-06-22 19:05     ` Dennis Lee Bieber
2013-06-22 22:57       ` Niklas Holsti
2013-06-23  3:26         ` Dennis Lee Bieber
2013-06-23  7:32           ` Niklas Holsti
2013-06-23 13:12             ` Robert A Duff
2013-06-23 14:06               ` Dmitry A. Kazakov
2013-06-23 15:15                 ` Robert A Duff
2013-06-23 18:52                   ` Dmitry A. Kazakov
2013-06-23 23:38                     ` Robert A Duff
2013-06-24  7:16                       ` Dmitry A. Kazakov [this message]
2013-06-24 20:11                         ` Randy Brukardt
2013-06-25  7:21                           ` Dmitry A. Kazakov
2013-06-25 19:06                             ` Randy Brukardt
2013-06-24 20:07                 ` Randy Brukardt
2013-06-23 14:40               ` Shark8
2013-06-23 15:28                 ` Robert A Duff
2013-06-23 18:14                   ` Bill Findlay
2013-06-23 23:43                     ` Robert A Duff
2013-06-23 23:48                       ` Bill Findlay
2013-06-24 20:16                   ` Randy Brukardt
2013-06-24 20:05               ` Randy Brukardt
2013-06-25  1:09                 ` Robert A Duff
2013-06-25 19:37                   ` Randy Brukardt
2013-06-23 12:28         ` Robert A Duff
2013-06-24 20:20           ` Randy Brukardt
2013-06-24 21:40             ` Niklas Holsti
2013-06-25  0:43               ` Robert A Duff
2013-06-25 19:23                 ` Randy Brukardt
2013-06-25 19:19               ` Randy Brukardt
2013-07-09 11:24   ` Martin
2013-07-09 14:39     ` Simon Wright
2013-07-10  7:03       ` Martin
2013-07-09 21:43     ` Robert A Duff
2013-07-10  6:34       ` Martin
2013-07-10  8:24         ` Dmitry A. Kazakov
2013-07-10 13:06           ` Martin
2013-07-10 16:12     ` Simon Wright
2013-07-10 18:22       ` Martin
2013-07-10 19:41         ` Simon Wright
2013-07-11 18:28           ` Martin
2013-07-11 19:37             ` Simon Wright
2013-07-11 20:43               ` Martin
2013-07-12  6:57                 ` Simon Wright
2013-07-12  8:05                   ` Martin
replies disabled

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