comp.lang.ada
 help / color / mirror / Atom feed
From: "G.B." <bauhaus@futureapps.invalid>
Subject: Re: function Is_Open (File : File_Type) return Boolean; :Text_io
Date: Thu, 29 Oct 2015 12:47:48 +0100
Date: 2015-10-29T12:47:48+01:00	[thread overview]
Message-ID: <n0t0t1$56e$1@dont-email.me> (raw)
In-Reply-To: <190shqocxd87d$.1d68ghgqgbvfs$.dlg@40tude.net>

On 28.10.15 19:20, Dmitry A. Kazakov wrote:
>> >If the assumptions are correct, but the compiler cannot determine
>> >their truth, should we hide the assumptions?
> As hide from the compiler? Certainly so! If as you said the compiler has no
> idea what your assumption is supposed to mean, how can it generate a useful
> code?

You mean, contract code needs to add value to *executables*
other than run-time tests?

I think the biggest misunderstanding here is in asking for
contracts to be considered just expressions, and then analyzing
them like they were *meant* to be ordinary expressions.

Even so, I think that an implementation of Ada could "outsource"
assertion checking to some read-only copy of the program that
is running on a twin processor, suitably connected, so as to
reduce run-time effects of assertion checking.

> If you force it, it generates garbage, which the semantics of dynamic
> predicates is, a garbage.

No, the compiler will be effecting the computation of a result
that does not need to be computed because we know it is true.
However, we wish to say that we know what the compiler does not
know, because a conjecture is being used as an assumption
when designing our subprogram, say.  If this assertion might
be checked at run-time due to some Assertion_Policy, then we
have to add a contraption,

     Some_Assertion =>
         Conjecture_X_To_Be_Assumed or else Conjecture_X (...);

So, if an algorithm is based on a conjecture, and we wish
to communicate what it is, precisely, a Boolean expression
allows us to do so. It documents our assumptions precisely.


  parent reply	other threads:[~2015-10-29 11:47 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-26 10:00 function Is_Open (File : File_Type) return Boolean; :Text_io comicfanzine
2015-10-26 11:27 ` Simon Wright
2015-10-26 13:25   ` comicfanzine
2015-10-26 18:01     ` Simon Wright
2015-10-26 19:03       ` AdaMagica
2015-10-27 11:30         ` Simon Wright
2015-10-26 18:02     ` Jeffrey R. Carter
2015-10-26 13:28   ` comicfanzine
2015-10-26 15:07     ` Jacob Sparre Andersen
2015-10-26 16:37     ` AdaMagica
2015-10-26 20:46     ` J-P. Rosen
2015-10-27  8:42   ` comicfanzine
2015-10-27 11:34     ` Simon Wright
2015-10-28 13:32       ` comicfanzine
2015-10-27  8:51   ` comicfanzine
2015-10-27 17:15     ` Jeffrey R. Carter
2015-10-26 22:48 ` Bob Duff
2015-10-27  8:30   ` Dmitry A. Kazakov
2015-10-27 13:30     ` Bob Duff
2015-10-27 14:00       ` G.B.
2015-10-27 15:26       ` Dmitry A. Kazakov
2015-10-27 16:43         ` G.B.
2015-10-27 20:04           ` Dmitry A. Kazakov
2015-10-28 11:06             ` Georg Bauhaus
2015-10-28 17:58               ` Randy Brukardt
2015-10-28 18:20               ` Dmitry A. Kazakov
2015-10-28 20:36                 ` Bob Duff
2015-10-28 21:02                   ` Dmitry A. Kazakov
2015-10-29 11:25                     ` AdaMagica
2015-10-29 13:37                       ` Dmitry A. Kazakov
2015-10-29 17:57                         ` AdaMagica
2015-10-29 18:12                           ` AdaMagica
2015-10-29 18:26                           ` Dmitry A. Kazakov
2015-10-30  8:27                           ` Jacob Sparre Andersen
2015-10-30  9:11                             ` J-P. Rosen
2015-10-29 11:47                 ` G.B. [this message]
2015-10-29 13:01                   ` J-P. Rosen
2015-10-29 14:00                   ` Dmitry A. Kazakov
2015-10-30  1:06                     ` Georg Bauhaus
2015-10-30  8:39                       ` Dmitry A. Kazakov
2015-10-30 14:32                         ` G.B.
2015-10-30 16:20                           ` Dmitry A. Kazakov
2015-10-30 19:07                             ` G.B.
2015-10-31  9:31                               ` Dmitry A. Kazakov
2015-10-31 11:17                                 ` Georg Bauhaus
2015-10-30 14:40                         ` G.B.
2015-10-30 16:26                           ` Dmitry A. Kazakov
2015-10-28 20:07         ` Bob Duff
2015-10-28 20:59           ` Dmitry A. Kazakov
2015-10-27 14:02     ` G.B.
2015-10-27 15:10       ` Dmitry A. Kazakov
2015-10-27 16:41         ` G.B.
replies disabled

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