comp.lang.ada
 help / color / mirror / Atom feed
From: Georg Bauhaus <bauhaus@futureapps.de>
Subject: Re: Surprise in array concatenation
Date: Wed, 07 Sep 2005 20:20:56 +0200
Date: 2005-09-07T20:19:59+02:00	[thread overview]
Message-ID: <431f2f4f$0$2102$9b4e6d93@newsread2.arcor-online.net> (raw)
In-Reply-To: <1b8825x3b8wn3.24qm946raz3d$.dlg@40tude.net>

Dmitry A. Kazakov wrote:
> On Tue, 06 Sep 2005 17:51:11 +0200, Georg Bauhaus wrote:

>> How does this violate Ada's
>>contracts? >>A contract is not necessarily simple, nor without deliberately
>>chosen limitations.
> 
> Arbitrary limitations you mean.

I won't accuse the designers of Ada to have placed arbitrary
limitations on things.

> Nope. You confuse sets and elements. Any infinite subset of R (and R
> itself) cannot be represented by *specifying its members*, because they
> aren't countable.

> But any real

Almost no real number can be represented in a computer.

> and any finite real subset can.

Only a small subset of the subset of finite subsets of R
can be represented in a computer.

> The domain set of a type need not to be countable.

A computer type needs to be countable, otherwise you will run
into computability trouble.

> Did you ever use all
> possible values of Integer?

Yes. And if this hadn't happened before there were no wrap-around
stories.

 [more integers]
> Would it change anything for you? Not in a well designed program!

That's true of well designed A'First-based algorithms, too.

 
> Note an important point of Ada design, as opposed to may other languages.
> In Ada you specify what kind of values you are going to use. You say:
> 
> My_Integer is range 0..100;
>    -- I don't care about other integers
> My_Float is digits 8 range 0.0..100.0;
>    -- I don't care about reals outside and in between
> 
> This is the right way to handle uncountable things without inventing any
> new "computer" mathematics,

This is *precisely* where newly invented computing mathematics
is at work! The theory of floating point computations covers finite
approximations. It doesn't matter whether computations are done on
paper, or inside a computing machine. Computer mathematics provides
the theoretical tools for reasoning about numbers that are not reals,
but are used in computations that people would like to be performed in R,
but that cannot be performed in R.

Once again, if you think you can get by with a finite subset
of R, I suggest that you try the fly-hits-windshield example.
One value of the computation will be very, very small. The other value
will be comparatively large. Still you have to use both in the same
"formula". There is a good chance that both together simply won't fit
inside our computing machines. (Whether or not this matters in practice
is a different issue; here a finite approximation suffices. But forget
about real numbers.)


>>>LOL! Any program represents anything symbolically.
>>
>>No, an executing program has an interpretation.
>>This makes "representing" have a meaning.
> 
> 
> And meaning is represented by what? (:-))

As I said, HALT is the limit, and we have to agree on something.
You can of course argue that operational semantics is useless.


>>>Do you really believe
>>>that 1 is *the* 1? Did you see a label "made in Heaven" on it? (:-))
>>
>>Type Positive starts at 1 and ends with Positive'Last.

> ... and it does this not symbolically, but physically

yes.

> by attaching a tiny
> rubber thread to the Platonic number 1. Right? (:-))

no.

> You are trying to formulate some generic algorithm which does not work for
> all index types.

My algorithm should work for arrays, using properties of arrays.
A'First .. A'Last, where A'First > A'Last works well in loops.

When are you interested in computing the value half-way between
the ends of a (non-numeric) enumeration type, attempting to use
A'Length / 2?

> This is why it is so important to have a consistent model
> of indexing and arrays.

It is important to be consistently using the proper type of arrays
in algorithms made for this type of arrays.

> For an unordered [index] type X it is wrong to
> assume that:

Can there be an index type in Ada that isn't ordered?

> 1. If L in X and U in X then there is always M in X between L and U
> 2. That M can be computed as (L+U)/2

You can't usually compute M when X is an enumeration type.
Otherwise, if A'Length <= 1, then (L+U)/2 = 0 = M.
Thus, M can be computed but is not necessarily between L and U.
Anyone who thinks like Ada suggest (and Eiffel, and C++, and ...),
and who isn't mislead by DK's incessant subservience to some field
of mathematics, is _not_ surprised. */2 can be found in just about
and textbook on algorithms.

I'll concede that your ideas might be interesting for use in
a data structure that is not an array as people know it around
the globe.

> Examples: hash map, variable length string map etc.

Aha!
 



  reply	other threads:[~2005-09-07 18:20 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-01  3:16 Surprise in array concatenation Gene
2005-09-01  7:55 ` Dmitry A. Kazakov
2005-09-01  8:02   ` Florian Weimer
2005-09-01 11:48     ` Georg Bauhaus
2005-09-01 12:02       ` Lutz Donnerhacke
2005-09-01 13:01         ` Georg Bauhaus
2005-09-01 15:54       ` Florian Weimer
2005-09-01 16:09     ` Robert A Duff
2005-09-05  8:38       ` Jean-Pierre Rosen
2005-09-05 23:52         ` Robert A Duff
2005-09-06  9:03           ` Jean-Pierre Rosen
2005-09-07 17:57         ` adaworks
2005-09-07 20:01           ` Robert A Duff
2005-09-08  8:08             ` Jacob Sparre Andersen
2005-09-07 22:46           ` Jeffrey Carter
2005-09-08  4:43             ` Simon Wright
2005-09-08 10:36               ` Georg Bauhaus
2005-09-08 13:47                 ` Ed Falis
2005-09-08 17:03                   ` Pascal Obry
2005-09-08 16:45               ` Jeffrey Carter
2005-09-08 19:37                 ` Simon Wright
2005-09-08  6:32             ` adaworks
2005-09-08  9:09               ` Jean-Pierre Rosen
2005-09-08 16:56               ` Jeffrey Carter
2005-09-09 14:04                 ` Bob Spooner
2005-09-09 16:17                 ` adaworks
2005-09-23 23:04               ` Randy Brukardt
2005-09-14  8:57           ` Ole-Hjalmar Kristensen
2005-09-23 23:09           ` Randy Brukardt
2005-09-24 10:49             ` Larry Kilgallen
2005-09-24 20:27             ` Lurker
2005-09-25  0:20             ` Robert A Duff
2005-09-25 17:05             ` adaworks
2005-09-01 11:42   ` Georg Bauhaus
2005-09-01 13:59     ` Dmitry A. Kazakov
2005-09-01 15:36       ` Georg Bauhaus
2005-09-01 18:34         ` Dmitry A. Kazakov
2005-09-02 10:43           ` Georg Bauhaus
2005-09-02 13:11             ` Dmitry A. Kazakov
2005-09-02 14:23               ` Georg Bauhaus
2005-09-02 19:48                 ` Dmitry A. Kazakov
2005-09-02 17:21           ` Björn Persson
2005-09-01 16:04   ` Robert A Duff
2005-09-01 18:06     ` Dmitry A. Kazakov
2005-09-02 10:42       ` Georg Bauhaus
2005-09-02 13:20         ` Dmitry A. Kazakov
2005-09-02 14:14           ` Georg Bauhaus
2005-09-02 19:48             ` Dmitry A. Kazakov
2005-09-03 20:01               ` Georg Bauhaus
2005-09-04 10:13                 ` Dmitry A. Kazakov
2005-09-05 13:22                   ` Georg Bauhaus
2005-09-05 15:50                     ` Dmitry A. Kazakov
2005-09-05 18:20                       ` Georg Bauhaus
2005-09-05 18:31                         ` Georg Bauhaus
2005-09-06  8:20                         ` Dmitry A. Kazakov
2005-09-06 11:52                           ` Georg Bauhaus
2005-09-06 13:46                             ` Dmitry A. Kazakov
2005-09-06 15:51                               ` Georg Bauhaus
2005-09-06 21:32                                 ` Robert A Duff
2005-09-07  9:08                                 ` Dmitry A. Kazakov
2005-09-07 18:20                                   ` Georg Bauhaus [this message]
2005-09-07 19:07                                     ` Georg Bauhaus
2005-09-07 21:23                                     ` Dmitry A. Kazakov
2005-09-08 10:27                                       ` Georg Bauhaus
2005-09-08 11:39                                         ` Georg Bauhaus
2005-09-08 13:44                                         ` Dmitry A. Kazakov
2005-09-08 18:18                                           ` Georg Bauhaus
2005-09-09 10:06                                             ` Dmitry A. Kazakov
2005-09-09 12:26                                               ` Georg Bauhaus
2005-09-09 12:29                                               ` Georg Bauhaus
2005-09-01  8:48 ` Jean-Pierre Rosen
2005-09-01 15:57 ` Robert A Duff
2005-09-01 21:42   ` Gene
2005-09-01 22:56     ` tmoran
2005-09-05 15:53       ` Gene
2005-09-05 17:47         ` jimmaureenrogers
2005-09-05 22:13           ` Robert A Duff
2005-09-06  8:24             ` Dmitry A. Kazakov
2005-09-05 19:22         ` Jeffrey R. Carter
2005-09-05 21:54           ` Robert A Duff
2005-09-05 22:50             ` Larry Kilgallen
2005-09-05 23:46               ` Robert A Duff
2005-09-12  3:59                 ` Dave Thompson
2005-09-06 16:02             ` Jeffrey Carter
2005-09-06 21:00               ` Robert A Duff
2005-09-06  5:38         ` Pascal Obry
2005-09-05 21:48       ` Robert A Duff
2005-09-06  5:25         ` tmoran
2005-09-06 14:58           ` Robert A Duff
2005-09-06  9:26         ` Georg Bauhaus
2005-09-06 15:00           ` Robert A Duff
2005-09-07 11:02             ` Thierry Pirot
2005-09-07 20:09               ` Robert A Duff
2005-09-06 13:22         ` Bob Spooner
2005-09-06 15:30           ` Robert A Duff
2005-09-06 16:12             ` Jeffrey Carter
2005-09-06 21:21               ` Robert A Duff
2005-09-02 20:19     ` Jeffrey R. Carter
2005-09-03 12:51     ` Dr. Adrian Wrigley
2005-09-03 14:08       ` Jacob Sparre Andersen
2005-09-05  8:34         ` Jean-Pierre Rosen
2005-09-05  9:32           ` Arrays indexed by fixed point types (Was: Surprise in array concatenation) Jacob Sparre Andersen
2005-09-05 11:07             ` Jean-Pierre Rosen
2005-09-05 15:12               ` Dr. Adrian Wrigley
2005-09-05 12:14             ` Dmitry A. Kazakov
2005-09-05 13:07               ` Jacob Sparre Andersen
2005-09-05 15:10                 ` Dmitry A. Kazakov
2005-09-05 11:29           ` Surprise in array concatenation Dr. Adrian Wrigley
replies disabled

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