comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Convention for naming of packages
Date: Mon, 13 Feb 2012 18:19:16 +0100
Date: 2012-02-13T18:19:16+01:00	[thread overview]
Message-ID: <vksekk10ezqz.nz09sg73riom$.dlg@40tude.net> (raw)
In-Reply-To: op.v9mk6mwdule2fv@douda-yannick

On Mon, 13 Feb 2012 17:24:12 +0100, Yannick Duchêne (Hibou57) wrote:

> Le Mon, 13 Feb 2012 16:11:49 +0100, Dmitry A. Kazakov  
> <mailbox@dmitry-kazakov.de> a écrit:
> 
>> On Mon, 13 Feb 2012 15:20:30 +0100, Yannick Duchêne (Hibou57) wrote:
>>
>>> An object type has methods for creation;
>>
>> A singletone may not have such method. Semantically, you should not be  
>> able create a singletone explicitly.
> 
> Seems my wording was unclear. I meant a package describing, specifying (by  
> Package, I mean the interface, not the body) something. A package is not  
> an instance of the object if discribes (when its purpose is to describe an  
> object), it defines it.

It is a quite uncommon use anyway. I mean to have a package of instances of
some types.

But certainly if that happens the instance always have meaningful names
rather than "Object". E.g.

package Units.Base is
   Current : constant Unit;
   Luminescence : constant Unit;
   Temperature : constant Unit;
   ...

I think that any thing worth a name can be named. If not, that is because
some language deficiency.

>>> The example with Element_Type which may be a Symbol_Type in some context,
>>> explains why I said this may be compared to genericity.
>>>
>>> Static genericity seems adopted without too much objections in the “crowd”
>>> of Ada application authors.
>>
>> Static polymorphism is OK so long the semantics of overloaded entities is
>> same. The semantics of Element_Type is? Element + type? That looks far  
>> too thin.

> The semantic may be thin, if the semantic is thin, then its specification  
> cannot be said too much thin for the sole reason it's thin.
> 
> Element_Type would be Element + Type, as you say, and also what appears as  
> the second parameter of an Add method. Its presence as the second  
> parameter of Add defines what Element_Type is (not just its name “Element”  
> and its Type status in the Ada source text).

It is a language deficiency here, namely the generics. If the type of the
class (of the container type) could be properly typed, you would not need
to have meaningless names in meaningless packages the only purpose of which
is meaningless instantiation.

But even with generics, it is another deficiency that the element type (or
the class of) cannot be asked from the container type it belongs to, as
well as the type of the index and the type of sets of indices.

Yes, I am aware of dangers of type inference. Anonymous access types was an
error. But T'Class was right. It is a very delicate balance each time. So
far, it seems to me that element and index types should be anonymous.

Anyway, outside the stuff caused by the generic plague, and
container-member-index relationships (record types belong here as well),
names can and shall be meaningful. 
 
-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2012-02-13 17:19 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-09 21:10 Convention for naming of packages Yannick Duchêne (Hibou57)
2012-02-09 21:39 ` Jeffrey Carter
2012-02-10 15:07   ` Yannick Duchêne (Hibou57)
2012-02-10 17:04     ` Georg Bauhaus
2012-02-10 17:09     ` Georg Bauhaus
2012-02-10 17:41       ` Yannick Duchêne (Hibou57)
2012-02-13  9:33       ` Yannick Duchêne (Hibou57)
2012-02-11  0:56     ` Randy Brukardt
2012-02-13  3:09       ` BrianG
2012-02-10 17:21   ` Pascal Obry
2012-02-10 18:03     ` Yannick Duchêne (Hibou57)
2012-02-11  1:06     ` Randy Brukardt
2012-02-11  9:22       ` Simon Wright
2012-02-11 10:17         ` Yannick Duchêne (Hibou57)
2012-02-11 19:24           ` Yannick Duchêne (Hibou57)
2012-02-11 20:06             ` Simon Wright
2012-02-12  9:18               ` Yannick Duchêne (Hibou57)
2012-02-12 10:22                 ` Simon Wright
2012-02-13  9:21         ` Yannick Duchêne (Hibou57)
2012-02-12 19:53       ` J-P. Rosen
2012-02-12 21:19         ` Yannick Duchêne (Hibou57)
2012-02-13  8:53           ` Dmitry A. Kazakov
2012-02-13  9:12             ` Yannick Duchêne (Hibou57)
2012-02-13 11:03               ` Dmitry A. Kazakov
2012-02-13 11:57                 ` Yannick Duchêne (Hibou57)
2012-02-13 12:30                   ` Yannick Duchêne (Hibou57)
2012-02-13 13:07                     ` Dmitry A. Kazakov
2012-02-13 14:01                       ` Yannick Duchêne (Hibou57)
2012-02-13 14:59                         ` Dmitry A. Kazakov
2012-02-13 15:05                           ` Yannick Duchêne (Hibou57)
2012-02-13 15:23                             ` Dmitry A. Kazakov
2012-02-14 21:02                               ` Yannick Duchêne (Hibou57)
2012-02-13 13:01                   ` Dmitry A. Kazakov
2012-02-13 13:04                     ` Yannick Duchêne (Hibou57)
2012-02-13 13:19                       ` Dmitry A. Kazakov
2012-02-13 14:20                         ` Yannick Duchêne (Hibou57)
2012-02-13 15:11                           ` Dmitry A. Kazakov
2012-02-13 16:24                             ` Yannick Duchêne (Hibou57)
2012-02-13 17:19                               ` Dmitry A. Kazakov [this message]
2012-02-13 18:10                                 ` Yannick Duchêne (Hibou57)
2012-02-13 21:02                                   ` Dmitry A. Kazakov
2012-02-14  9:08                                     ` Yannick Duchêne (Hibou57)
2012-02-14 13:33                                       ` Dmitry A. Kazakov
2012-02-14 14:40                                         ` Yannick Duchêne (Hibou57)
2012-02-14 15:26                                           ` Dmitry A. Kazakov
2012-02-13 10:45             ` Georg Bauhaus
2012-02-13 10:59               ` Yannick Duchêne (Hibou57)
2012-02-14 10:18           ` Yannick Duchêne (Hibou57)
2012-02-14 11:51             ` Yannick Duchêne (Hibou57)
2012-02-14 22:21               ` Manuel Collado
2012-02-15  4:09                 ` Simon Wright
2012-02-15  6:13                   ` Niklas Holsti
2012-02-15 11:26                     ` Yannick Duchêne (Hibou57)
2012-02-15 11:39                     ` Georg Bauhaus
2012-02-15 11:47                       ` Georg Bauhaus
2012-02-15  6:30                   ` J-P. Rosen
2012-02-15  8:36                     ` Simon Wright
2012-02-15 22:56                     ` Robert A Duff
2012-02-15 11:27                   ` Yannick Duchêne (Hibou57)
2012-02-15 11:43                     ` Georg Bauhaus
2012-02-15 12:33                       ` Georg Bauhaus
2012-02-15 12:55                         ` Yannick Duchêne (Hibou57)
2012-02-15 17:30                           ` Georg Bauhaus
2012-02-09 22:33 ` Simon Wright
2012-02-09 22:35 ` J-P. Rosen
2012-02-10 14:38   ` Yannick Duchêne (Hibou57)
2012-02-10  9:47 ` Mart van de Wege
2012-02-10 14:24   ` Yannick Duchêne (Hibou57)
2012-02-13  3:02     ` BrianG
2012-02-10 12:19 ` Brian Drummond
2012-02-10 14:22   ` Yannick Duchêne (Hibou57)
2012-02-10 19:16   ` Jeffrey Carter
2012-02-11 16:31 ` Martin Dowie
2012-02-16 17:44 ` Convention for naming of anything Yannick Duchêne (Hibou57)
2012-02-17 19:46   ` Yannick Duchêne (Hibou57)
2012-02-17 21:53     ` Manuel Collado
2012-02-17 22:12       ` Yannick Duchêne (Hibou57)
2012-02-17 23:52   ` Adam Beneschan
2012-02-18  0:24     ` Yannick Duchêne (Hibou57)
2012-02-18  0:50       ` Yannick Duchêne (Hibou57)
2012-02-18 22:53         ` BrianG
2012-02-19 11:16           ` Simon Wright
2012-03-06  0:36             ` Randy Brukardt
2012-02-18 11:32   ` Georg Bauhaus
2012-02-18 13:02     ` Yannick Duchêne (Hibou57)
2012-02-19 18:07   ` Phil Clayton
2012-02-19 21:53     ` Yannick Duchêne (Hibou57)
2012-02-20  0:21       ` Phil Clayton
replies disabled

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