comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Question on bounded / unbounded strings
Date: Thu, 22 Sep 2016 14:05:35 +0200
Date: 2016-09-22T14:05:35+02:00	[thread overview]
Message-ID: <ns0hg3$pq6$1@gioia.aioe.org> (raw)
In-Reply-To: ns0e3f$adg$1@dont-email.me

On 22/09/2016 13:08, J-P. Rosen wrote:
> Le 22/09/2016 à 11:53, Dmitry A. Kazakov a écrit :
>>> => Bounded_String is the way to go.
>>
>> Never. It is very difficult to find cases where
>>
>> 1. There is a hard upper bound, so hard that it would be feasible to
>> mold it into the type.
>>
>> 2. There is no cases where the upper bound implies another type. There
>> is nothing in the first name's length that makes first name different
>> from the second name. These are just unrelated things.
>>
>> The major reason for that is that constraint whatever it be is most
>> likely an implementation detail, which type difference is to reflect the
>> problem space.
>>
> ?? I don't follow you here. I may not have been explicit enough, but of
> course each type corresponds to a different instantiation of bounded
> strings, wich provide different types with unrelated lengths.

I meant that any non-tagged type can be cloned in Ada, String included. 
This is not specific to bounded strings. That a change of maximum length 
requires another type is not a feature, it is rather a design flaw. 
Clearly bounded strings of different maximum length should be subtypes 
of each other, as strings are, unless cloned.

It is thinkable but useless to consider the maximum length a part of the 
contract. In most cases it is an implementation detail that does not 
deserve new type promotion.

Just my explanation of the empiric fact that practically nobody uses them.

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

  reply	other threads:[~2016-09-22 12:05 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-13  8:46 Question on bounded / unbounded strings Arie van Wingerden
2016-09-13  9:04 ` Dmitry A. Kazakov
2016-09-22  2:10   ` John Smith
2016-09-22  7:24     ` Dmitry A. Kazakov
2016-09-22  9:01       ` J-P. Rosen
2016-09-22  9:53         ` Dmitry A. Kazakov
2016-09-22 10:58           ` G.B.
2016-09-22 12:05             ` Dmitry A. Kazakov
2016-09-22 14:14               ` G.B.
2016-09-22 17:18                 ` Dmitry A. Kazakov
2016-09-22 11:08           ` J-P. Rosen
2016-09-22 12:05             ` Dmitry A. Kazakov [this message]
2016-09-22 13:18           ` Maciej Sobczak
2016-09-22 13:52             ` Dmitry A. Kazakov
2016-09-22 14:51               ` Maciej Sobczak
2016-09-22 17:13                 ` Dmitry A. Kazakov
2016-09-23  5:50                   ` Maciej Sobczak
2016-09-23  6:36                     ` Simon Wright
2016-09-23  7:48                       ` Dmitry A. Kazakov
2016-09-28 20:55                     ` Randy Brukardt
2016-09-23 23:58       ` John Smith
2016-09-24  7:52         ` Dmitry A. Kazakov
2016-09-24 16:25           ` John Smith
2016-09-24 17:44             ` Dmitry A. Kazakov
2016-09-24 18:33               ` John Smith
2016-09-24 18:37               ` John Smith
2016-09-24 18:59               ` John Smith
2016-09-25  8:50                 ` Dmitry A. Kazakov
2016-09-25 23:35                   ` brbarkstrom
2016-09-26  7:28                     ` Dmitry A. Kazakov
2016-09-26 12:39                       ` brbarkstrom
2016-09-28 21:09             ` Randy Brukardt
2016-09-30  7:59               ` Björn Lundin
2016-09-13  9:35 ` gautier_niouzes
2016-09-13 10:41 ` Alejandro R. Mosteo
2016-09-13 17:41 ` Jeffrey R. Carter
2016-09-13 17:59 ` Björn Lundin
2016-09-14 11:23 ` Arie van Wingerden
2016-09-14 12:26   ` Arie van Wingerden
2016-09-14 12:28   ` Arie van Wingerden
2016-09-14 12:57 ` Arie van Wingerden
2016-09-14 19:39   ` Jeffrey R. Carter
2016-09-17 16:35     ` Arie van Wingerden
2016-09-16 14:43 ` Olivier Henley
2016-09-17 16:35   ` Arie van Wingerden
replies disabled

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