From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Ada.Strings.Bounded
Date: Mon, 21 Apr 2008 10:08:16 -0400
Date: 2008-04-21T10:08:16-04:00 [thread overview]
Message-ID: <wcczlrnb8rz.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 4c1be2a2-0178-4c1f-8c96-526020550f42@w4g2000prd.googlegroups.com
Eric Hughes <eric.eh9@gmail.com> writes:
> On Wed, 16 Apr 2008 07:40:32 -0700 (PDT), Eric Hughes wrote:
>> By my
>> previous proof about universal_integer, the expression 'm+1' is also a
>> universal_integer.
>
> As a reference, that message was
> <b7c7de31-2e96-4f5b-882e-5e991d52ae93@a9g2000prl.googlegroups.com>.
>
> On Apr 16, 12:28 pm, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
> wrote:
>> How so? Clearly "+" is not closed in Universal_Integer.
>
> No, addition is closed in universal integer. It's an implication of
> its definition. From 3.5.4/14
>> Integer literals are all of the type universal_integer, the
>> universal type (see 3.4.1) for the class rooted at root_integer,
>> allowing their use with the operations of any integer type.
>
> Every universal_integer has a literal expression 'm'. The expression 'm
> +1' is also a literal. All literals have type universal_integer (see
> 2.4/3). Therefore 'm+1' is also a universal_integer.
No, that's not quite right. There's no such thing as a "literal
expression" in Ada, so I don't know what you mean by that. Static
expression? Expression of type universal_integer? No idea...
The expression 'm+1' is certainly NOT a literal -- it's a function
call, passing an identifier and a literal as the actual parameters.
An integer literal has type universal_integer, as you said, but
universal_integer has no "+" operator. There is a "+" for root_integer,
and also for user-defined integer types. Universal_integers can be
implicitly converted to various integer types.
The type of an expression like m+1 depends in part on the context.
M : constant := 123; -- M is of type universal_integer.
X : constant := M + 1; -- The "+" for root_integer is called.
-- X is of type universal_integer.
type My_Int is range 1..100;
Y : constant My_Int := 1 + 1; -- The "+" of My_Int is called.
-- Y is of type My_Int.
In both of the above "+" calls, the universal_integer operands are
implicitly converted -- to root_integer in the first case, and to My_Int
in the second case.
Static expressions are calculated exactly (arbitrary range).
Dynamic expressions are limited to some implementation
defined ranges -- this includes run-time values of type
root_integer and universal_integer.
> I should have realized that this was the point of the agreement long
> before. The ARM is wrong on this point, or at the very least
> inconsistent. Either they'll have to just say it's not a type (that
> is, an implementable Ada type) or they'll have to change the rules
> about integer literals. The above proof about 'm+1' can be taken as a
> proof of inconsistency, if you like.
I don't see any inconsistency here. An inconsistency would be a case
where the RM contradicts itself about whether a certain program is
legal, or what the run-time semantics of the program is. You have
proven nothing of the kind, as far as I can see.
Anyway, it might make your point clearer if you explain it again,
but using proper Ada terminology this time. I'd be interesting
in understanding your point...
- Bob
next prev parent reply other threads:[~2008-04-21 14:08 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-31 22:44 Untyped Ada? Phaedrus
2008-04-01 0:16 ` Randy Brukardt
2008-04-01 7:19 ` tmoran
2008-04-01 7:44 ` Dmitry A. Kazakov
2008-04-01 8:28 ` Jean-Pierre Rosen
2008-04-01 21:44 ` Phaedrus
2008-04-01 21:51 ` Ludovic Brenta
2008-04-01 17:09 ` Pascal Obry
2008-04-01 22:00 ` Phaedrus
2008-04-02 7:31 ` Dmitry A. Kazakov
2008-04-04 15:16 ` Graham
2008-04-04 16:10 ` Pascal Obry
2008-04-04 21:09 ` Ada.Bounded_Strings Adam Beneschan
2008-04-04 21:15 ` Ada.Strings.Bounded Adam Beneschan
2008-04-05 4:39 ` Ada.Strings.Bounded Gautier
2008-04-05 9:43 ` Ada.Strings.Bounded Pascal Obry
2008-04-05 10:10 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-05 11:36 ` Ada.Strings.Bounded Gautier
2008-04-05 12:14 ` Ada.Strings.Bounded Pascal Obry
2008-04-06 0:31 ` Ada.Strings.Bounded Randy Brukardt
2008-04-07 14:57 ` Ada.Strings.Bounded Adam Beneschan
2008-04-07 15:23 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-07 16:34 ` Ada.Strings.Bounded stefan-lucks
2008-04-07 17:34 ` Ada.Strings.Bounded (see below)
2008-04-12 18:50 ` Ada.Strings.Bounded Eric Hughes
2008-04-12 19:46 ` Ada.Strings.Bounded Georg Bauhaus
2008-04-13 16:53 ` Ada.Strings.Bounded Eric Hughes
2008-04-13 20:10 ` Ada.Strings.Bounded Robert A Duff
2008-04-13 23:52 ` Ada.Strings.Bounded Eric Hughes
2008-04-14 8:00 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-14 15:25 ` Ada.Strings.Bounded Eric Hughes
2008-04-14 18:36 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-15 1:39 ` Ada.Strings.Bounded Eric Hughes
2008-04-12 21:09 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-13 16:31 ` Ada.Strings.Bounded Eric Hughes
2008-04-13 20:02 ` Ada.Strings.Bounded Robert A Duff
2008-04-13 23:20 ` Ada.Strings.Bounded Eric Hughes
2008-04-14 9:07 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-14 15:50 ` Ada.Strings.Bounded Eric Hughes
2008-04-14 18:52 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-15 2:07 ` Ada.Strings.Bounded Eric Hughes
2008-04-15 8:02 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-15 14:20 ` Ada.Strings.Bounded Eric Hughes
2008-04-15 15:23 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-16 2:51 ` Ada.Strings.Bounded Eric Hughes
2008-04-16 8:00 ` Ada.Strings.Bounded Dmitry A. Kazakov
[not found] ` <bc3a8b4e-63fe-47a6-b10b-7056f6d7d586@w5g2000prd.googlegroups.com>
2008-04-15 14:58 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-16 2:46 ` Ada.Strings.Bounded Eric Hughes
2008-04-16 8:16 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-16 14:40 ` Ada.Strings.Bounded Eric Hughes
2008-04-16 18:28 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-21 0:44 ` Ada.Strings.Bounded Eric Hughes
2008-04-21 14:08 ` Robert A Duff [this message]
2008-04-21 16:35 ` Ada.Strings.Bounded Eric Hughes
2008-04-21 18:04 ` Ada.Strings.Bounded Robert A Duff
2008-04-22 0:19 ` Ada.Strings.Bounded Eric Hughes
2008-04-22 0:49 ` Ada.Strings.Bounded Adam Beneschan
2008-04-22 1:02 ` Ada.Strings.Bounded Adam Beneschan
2008-04-22 15:30 ` Ada.Strings.Bounded Eric Hughes
2008-04-22 16:08 ` Ada.Strings.Bounded Robert A Duff
2008-04-22 15:25 ` Ada.Strings.Bounded Eric Hughes
2008-04-22 15:54 ` Ada.Strings.Bounded Robert A Duff
2008-04-22 15:41 ` Ada.Strings.Bounded Robert A Duff
2008-04-22 17:49 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-22 18:26 ` Ada.Strings.Bounded Samuel Tardieu
2008-04-22 18:59 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-22 18:47 ` Ada.Strings.Bounded Eric Hughes
2008-04-22 19:19 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-22 19:41 ` Ada.Strings.Bounded Robert A Duff
2008-04-22 22:55 ` Ada.Strings.Bounded Eric Hughes
2008-04-23 6:40 ` Ada.Strings.Bounded christoph.grein
2008-04-23 6:54 ` Ada.Strings.Bounded christoph.grein
2008-04-23 10:42 ` Ada.Strings.Bounded Georg Bauhaus
2008-04-23 12:32 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-23 12:52 ` Ada.Strings.Bounded christoph.grein
2008-04-23 13:34 ` Ada.Strings.Bounded Georg Bauhaus
2008-04-23 15:12 ` Ada.Strings.Bounded Adam Beneschan
2008-04-23 15:36 ` Ada.Strings.Bounded (see below)
2008-04-23 17:09 ` Ada.Strings.Bounded Ray Blaak
2008-04-24 0:29 ` Ada.Strings.Bounded Randy Brukardt
2008-04-22 20:15 ` Ada.Strings.Bounded Adam Beneschan
2008-04-23 13:14 ` Ada.Strings.Bounded Peter Hermann
2008-04-23 14:40 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-23 15:03 ` Ada.Strings.Bounded Adam Beneschan
2008-04-22 19:56 ` Ada.Strings.Bounded Adam Beneschan
2008-04-21 18:50 ` Ada.Strings.Bounded Dmitry A. Kazakov
2008-04-22 0:31 ` Ada.Strings.Bounded Eric Hughes
2008-04-14 15:11 ` Ada.Strings.Bounded Adam Beneschan
2008-04-14 16:09 ` Ada.Strings.Bounded Eric Hughes
2008-04-14 18:13 ` Ada.Strings.Bounded Georg Bauhaus
2008-04-15 1:35 ` Ada.Strings.Bounded Eric Hughes
2008-04-15 20:33 ` Ada.Strings.Bounded Georg Bauhaus
2008-04-16 3:11 ` Ada.Strings.Bounded Eric Hughes
2008-04-04 23:35 ` Ada.Bounded_Strings Robert A Duff
2008-04-05 1:46 ` Ada.Bounded_Strings Adam Beneschan
2008-04-05 4:55 ` Ada.Bounded_Strings Randy Brukardt
2008-04-05 7:30 ` Ada.Bounded_Strings Dmitry A. Kazakov
2008-04-06 0:44 ` Ada.Bounded_Strings Randy Brukardt
2008-04-04 16:18 ` Untyped Ada? Adam Beneschan
2008-04-04 16:32 ` DScott
2008-04-04 17:38 ` Dmitry A. Kazakov
2008-04-04 18:52 ` Georg Bauhaus
2008-04-05 8:07 ` Dmitry A. Kazakov
2008-04-04 19:14 ` Graham
2008-04-04 21:06 ` tmoran
2008-04-05 8:44 ` Dmitry A. Kazakov
2008-04-12 16:50 ` Eric Hughes
2008-04-04 18:02 ` adaworks
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox