comp.lang.ada
 help / color / mirror / Atom feed
From: rod@praxis-cs.co.uk (Rod Chapman)
Subject: Re: Local vs global variables in ADA
Date: 6 Nov 2002 07:40:55 -0800
Date: 2002-11-06T15:40:55+00:00	[thread overview]
Message-ID: <ba18d5cb.0211060740.61af07eb@posting.google.com> (raw)
In-Reply-To: wcc4ravfxs0.fsf@shell01.TheWorld.com

Robert A Duff <bobduff@shell01.TheWorld.com> wrote in message news:
> I seem to recall some issue in SPARK, where they discouraged while
> loops.  Something about wanting to put a loop-invariant before the exit
> condition?  Maybe one of the SPARK folks can comment on that.

Not really - while loops are fine in SPARK.  You can place an assertion
either after the implicit loop exit, thus:

while A loop
   --# assert ... ;
   S;
end loop;

or before it:

while A
--# assert ... ;
loop
   S;
end loop;

or anywhere else in the loop body for that matter.  Note that the first form
does result in an additiona basic path (bypasses the assertion) for the
zero-iterations case.

The rules for placing exit statements in SPARK ensure that the resulting
flow graph is both reducible and can be generated from a semi-structured
graph grammar.  This property makes subsequent analyses (particularly
info flow analysis and verification condition generation) tractable.

 - Rod



  parent reply	other threads:[~2002-11-06 15:40 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-03 18:17 Local vs global variables in ADA Roger
2002-11-03 19:03 ` Per Sandbergs
2002-11-03 19:31 ` Eric Jacoboni
2002-11-04  1:47 ` Jeffrey Carter
2002-11-04 13:27   ` Wes Groleau
2002-11-04 20:48     ` Jeffrey Carter
2002-11-05  8:43       ` Fraser Wilson
2002-11-05 13:53         ` Charles H. Sampson
2002-11-06  4:59           ` R. Tim Coslet
2002-11-05 17:28         ` Stephen Leake
2002-11-05 17:38           ` Jean-Pierre Rosen
2002-11-05 19:57             ` Jeffrey Carter
2002-11-06  9:11               ` Jean-Pierre Rosen
2002-11-05 20:26             ` Vinzent Hoefler
2002-11-05 23:14             ` Wes Groleau
2002-11-06  9:16               ` Jean-Pierre Rosen
2002-11-06 13:49                 ` Wes Groleau
2002-11-05 22:37           ` Robert A Duff
2002-11-05 23:46             ` Larry Hazel
2002-11-06  2:19               ` Dennis Lee Bieber
2002-11-06 13:45                 ` Dan Nagle
2002-11-07  0:30                   ` Dennis Lee Bieber
2002-11-06  2:15             ` Dennis Lee Bieber
2002-11-06  7:04               ` Martin Dowie
2002-11-06 14:40               ` john mann
2002-11-07  0:25                 ` Dennis Lee Bieber
2002-11-07 14:58                   ` Robert A Duff
2002-11-07 15:38                     ` Jean-Pierre Rosen
2002-11-08  1:43                   ` Jeffrey Carter
2002-11-06  7:18             ` Dale Stanbrough
2002-11-06 15:40             ` Rod Chapman [this message]
2002-11-06 17:34             ` Stephen Leake
2002-11-10  1:36               ` loop statements, was " David Thompson
2002-11-05 19:54         ` Jeffrey Carter
2002-11-04 13:47 ` Martin Dowie
  -- strict thread matches above, loose matches on Subject: below --
2002-11-05  6:42 Grein, Christoph
2002-11-05 15:59 ` Martin Dowie
replies disabled

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