comp.lang.ada
 help / color / mirror / Atom feed
From: "Yannick Duchêne (Hibou57)" <yannick_duchene@yahoo.fr>
Subject: Re: SPARK : third example for Roesetta - reviewers welcome
Date: Sun, 15 Aug 2010 22:19:39 +0200
Date: 2010-08-15T22:19:39+02:00	[thread overview]
Message-ID: <op.vhhxe1caxmjfy8@garhos> (raw)
In-Reply-To: 87aaonlk1h.fsf@hugsarin.sparre-andersen.dk

Hello Jacob :) So you join us too ? This place is starting to be cool.

Le Sun, 15 Aug 2010 22:04:26 +0200, Jacob Sparre Andersen <sparre@nbi.dk>  
a écrit:
>> http://rosettacode.org/wiki/Binary_search
>
>>       subtype Item_Type is Integer; -- From specs.
>
> No need to introduce a subtype here.  Just use "Integer" as the element
> type, or introduce a new type with explicit ranges (just to show how
> easy it is).
The idea was to give a proper name expressing a purpose (I like to start  
to name thing).

Well, your idea of "show how easy it is" could be balanced. However, I  
have not clear idea about it. Would be nice to know how it is perceived.  
On the other hand, if the purpose of the sorted list is to be general  
purpose or even more, precisely to sort Integer, namely, this could be  
indeed an option.

May be Phil or Jeffrey will have something to state here.

>>       subtype Index_Type is Integer range 1 .. 100; -- Arbitrary limits.
>
> Is there really any need to make this a subtype of Integer?  Shouldn't
> it rather be a completely independent type:
>
>    type Index_Type is range 1 .. 100;
This was rightly to simplify thing (I say "rightly", because you moved it  
in front above). This was avoiding the need to
have some conversion to Integer.

> Shouldn't the preconditions include that Source is ordered?
That was a topic indeed. Phil and I talked about it in this same thread. I  
first had the idea to express it, but later removed it.

> (How do you write that in SPARK?)
I did it this way (before I removed it):


    --# pre
    --#    (Source'Length = 0) or else
    --#    (for all I in Index_Type range Source'First .. Source'Last - 1
    --#       => (Source (I) <= Source (I + 1)));
    -- The array must be either empty or sorted from lower to higher.

Phil did it another way (using an abstract function, if that is the good  
word, i am not sure about the proper way to name it).

> The procedure Search should be placed in a package of its own (in theory
> it is reusable), and the demonstration program should be a library level
> procedure.  There is no reason to make the example code more complicated
> than that.
Yes, that was silly after all. I will split it into proper spec, body and  
program, this is indeed strongly advised to expose a good example. You are  
right. I did it this way because I always write test program in a single  
file (and thus declaring package spec and body in the declarative part of  
the main procedure). Will change it later when I will be finished with  
reading Phil's version of the implementation and specs.



  reply	other threads:[~2010-08-15 20:19 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-15  6:17 SPARK : third example for Roesetta - reviewers welcome Yannick Duchêne (Hibou57)
2010-08-15  6:27 ` Yannick Duchêne (Hibou57)
2010-08-15  6:35 ` Jeffrey Carter
2010-08-15  6:39   ` Yannick Duchêne (Hibou57)
2010-08-15 18:42 ` Phil Thornley
2010-08-15 19:32   ` Yannick Duchêne (Hibou57)
2010-08-15 20:12     ` Phil Thornley
2010-08-16 10:08       ` Jacob Sparre Andersen
2010-08-15 19:57   ` Yannick Duchêne (Hibou57)
2010-08-15 20:07   ` Yannick Duchêne (Hibou57)
2010-08-15 20:57   ` Yannick Duchêne (Hibou57)
2010-08-15 22:19     ` Yannick Duchêne (Hibou57)
2010-08-16  5:51       ` Phil Thornley
2010-08-16 16:42         ` Yannick Duchêne (Hibou57)
2010-08-16 17:07           ` Mark Lorenzen
2010-08-15 22:09   ` Jeffrey Carter
2010-08-15 22:27     ` Yannick Duchêne (Hibou57)
2010-08-16  4:58       ` Phil Thornley
2010-08-16  7:50       ` Stephen Leake
2010-08-16  8:37         ` Phil Thornley
2010-08-16 16:55           ` Yannick Duchêne (Hibou57)
2010-08-16 20:40             ` Peter C. Chapin
2010-08-16 22:38               ` Yannick Duchêne (Hibou57)
2010-08-16 23:43                 ` Peter C. Chapin
2010-08-17  9:15                   ` Phil Thornley
2010-08-17 10:32                     ` Peter C. Chapin
2010-08-17 19:53                     ` Phil Thornley
2010-08-17 22:15                       ` Dmitry A. Kazakov
2010-08-18 10:44                         ` Phil Thornley
2010-08-18 16:33                           ` Dmitry A. Kazakov
2010-08-19  6:19                             ` Categories for SPARK on Rosetta Code (Was: SPARK : third example for Roesetta - reviewers welcome) Jacob Sparre Andersen
2010-08-20  8:40                               ` Phil Thornley
2010-08-20  9:15                                 ` J-P. Rosen
2010-08-20  9:23                                   ` Dmitry A. Kazakov
2010-08-20  9:55                                     ` J-P. Rosen
2010-08-20 10:24                                       ` Dmitry A. Kazakov
2010-08-20 11:36                                         ` J-P. Rosen
2010-08-20 12:25                                           ` Dmitry A. Kazakov
2010-08-20 13:28                                             ` J-P. Rosen
2010-08-20 14:05                                               ` Dmitry A. Kazakov
2010-08-20 16:23                                                 ` J-P. Rosen
2010-08-20 16:41                                                   ` Dmitry A. Kazakov
2010-08-20 15:34                                 ` (see below)
2010-08-20 16:42                                   ` Dmitry A. Kazakov
2010-08-22  8:11                                     ` Categories for SPARK on Rosetta Code Jacob Sparre Andersen
2010-08-22  8:53                                       ` Dmitry A. Kazakov
2010-08-20  8:37                           ` SPARK : third example for Roesetta - reviewers welcome Phil Thornley
2010-08-17  8:16                 ` How to structure examples for Rosetta Code (Was: SPARK : third example for Roesetta - reviewers welcome) Jacob Sparre Andersen
2010-08-17 19:16                   ` How to structure examples for Rosetta Code Simon Wright
2010-08-17 20:53                     ` Peter C. Chapin
2010-08-17 21:24                       ` Simon Wright
2010-08-17  2:07           ` SPARK : third example for Roesetta - reviewers welcome Stephen Leake
2010-08-16  4:41     ` Phil Thornley
2010-08-16 17:03       ` Yannick Duchêne (Hibou57)
2010-08-15 20:04 ` Jacob Sparre Andersen
2010-08-15 20:19   ` Yannick Duchêne (Hibou57) [this message]
2010-08-15 21:40     ` Jeffrey Carter
2010-08-15 22:13       ` Yannick Duchêne (Hibou57)
2010-08-16  4:29       ` Phil Thornley
2010-08-16 17:11     ` Phil Thornley
2010-08-20  9:06   ` Phil Thornley
replies disabled

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