From: Brian Drummond <brian3@shapes.demon.co.uk>
Subject: Re: I'm a noob here.
Date: Tue, 06 May 2014 10:47:53 GMT
Date: 2014-05-06T10:47:53+00:00 [thread overview]
Message-ID: <t53av.170275$Uc.159322@fx22.fr7> (raw)
In-Reply-To: 42945a0c-e4ae-41ff-a2ce-d3faf41336ce@googlegroups.com
On Mon, 05 May 2014 05:43:50 -0700, Dan'l Miller wrote:
> In brief, what the OP is asking is: precisely how does a SPARK compiler
> actually utilize the meta-information annotations? E.g., precisely how
> does a SPARK compiler make logical inferences regarding correctness of
> Ada-subset source code to verify that the imperative code does what the
> annotations have declared?
There is no such thing as a "SPARK compiler" (at least yet). Every SPARK
program is a valid Ada program (but not vice-versa) so SPARK is simply
compiled with an Ada compiler.
What the SPARK tools do is - not compilation - but proving the
"correctness" of the program - for example, proving that any errors that
could cause integer overflow are simply not present in the source code.
Or, failing that, pointing out the unprovable parts so that either the
proof can be completed, or the error preventing proof can be eliminated.
A very large system is unlikely to be suitable for SPARK, but a good
candidate for Ada.
Where SPARK comes in is if you can design the system such that a
relatively small kernel handles the most critical information (security,
encryption, or arbitrary precision fixed point arithmetic) and cleanly
interfaces to the rest of the system. That kernel can be formally proven
using SPARK; the rest of the system is implemented in conventional Ada.
- Brian
next prev parent reply other threads:[~2014-05-06 10:47 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-05 11:28 I'm a noob here sdalemorrey
2014-05-05 12:43 ` Dan'l Miller
2014-05-05 13:52 ` sdalemorrey
2014-05-05 13:59 ` roderick.chapman
2014-05-05 16:40 ` G.B.
2014-05-05 16:47 ` G.B.
2014-05-05 17:35 ` Shark8
2014-05-06 10:47 ` Brian Drummond [this message]
2014-05-05 13:57 ` roderick.chapman
2014-05-05 17:34 ` Shark8
2014-05-05 17:46 ` Jeffrey Carter
2014-05-05 18:07 ` Nasser M. Abbasi
2014-05-05 19:02 ` Georg Bauhaus
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox