EN100-web
EN100-web
EN100-web
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Research and Innovation<br />
Bridging the Gap<br />
between testing<br />
and formal verification<br />
in Ada Development<br />
by Claude Marché and Johannes Kanig<br />
European<br />
Research and<br />
Innovation<br />
Recent technological advances in formal deductive<br />
verification are benefiting industry users of<br />
programming language “Ada”. Mathematical proof<br />
complements existing test activities whilst reducing<br />
costs.<br />
The Ada programming language was the winner of a call<br />
issued by the US Department of Defence in the late 1970’s,<br />
aiming at replacing the various languages that were used in<br />
mission-critical embedded software at that time. It was<br />
named in honour of Ada Lovelace, who is recognized by the<br />
scientific community as the first computer programmer. The<br />
first ANSI standard for Ada appeared in 1983.<br />
SPARK, a subset of Ada, which has been around for nearly as<br />
long as Ada, was originally developed by Praxis (UK) and is<br />
currently co-developed by Altran UK and AdaCore (France<br />
and USA). Compared to Ada, SPARK imposes restrictions<br />
regarding the absence of name aliasing, allowing precise<br />
static analyses of data- and information-flow. These restrictions<br />
make SPARK well-suited to the development of mission-critical<br />
systems.<br />
Unlike Ada, SPARK allows developers to attach contracts to<br />
procedures. A contract is a set of formal logic formulas<br />
expressing either requirements (pre-conditions) or guarantees<br />
(post-conditions) of the procedure to which it is<br />
attached. SPARK comes with a verification condition generator,<br />
allowing the user to statically check that contracts are<br />
fulfilled, using computer-assisted mathematical proof techniques.<br />
SPARK has been used in several safety-critical systems, covering<br />
avionics (jet engines, air-traffic management), rail and<br />
space applications [1]. SPARK has also been used in the<br />
development of security-critical systems. Representative<br />
case studies include the NSA Tokeneer demonstrator<br />
(Microsoft Research Verified Software Milestone Award<br />
2011) and the iFACTS system for assisting air-traffic controllers<br />
in the UK.<br />
The AdaCore company leads the development of the GNAT<br />
Ada compiler and the many development tools around it.<br />
These tools are distributed under an open-source licence,<br />
which means no commitment for customers. Since<br />
AdaCore's business model is based on yearly subscriptions,<br />
the company must continually improve the technology and<br />
offer professional high-quality support. To maximize the<br />
potential dissemination of the innovative solutions, AdaCore<br />
also provides a free version of the tools suitable for development<br />
under the GNU public licence.<br />
ERCIM NEWS 100 January 2015