comp.lang.ada
 help / color / mirror / Atom feed
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

  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