Title
Enhancing spark's contract checking facilities using symbolic execution
Abstract
Spark, a subset of Ada for engineering safety and security-critical systems, is one of the best commercially available frameworks for formal-methods-supported development of critical software. Spark is designed for verification and includes a software contract language for specifying functional properties of procedures. Even though Spark and its static analysis components are beneficial and easy to use, its contract language is rarely used for stating properties beyond simple constraints on scalar values due to the burdens the associated tool support imposes on developers. Symbolic execution (SymExe) techniques have made significant strides in automating reasoning about deep semantic properties of source code. However, most work on SymExe has focused on bug-finding and test case generation as opposed to tasks that are more verification-oriented such as contract checking. In previous work we have presented: (a) SymExe techniques for checking software contracts in embedded critical systems, and (b) Bakar Kiasan, a tool that implements these techniques in an integrated development environment for Spark. In this paper, we give a detailed walk-through of Bakar Kiasan as it is applied to an industrial code base for an embedded security device. We illustrate how Bakar Kiasan provides significant increases in automation, usability, and functionality over existing Spark contract checking tools, and we present results from performance evaluations of its application to industrial examples.
Year
DOI
Venue
2011
10.1145/2070337.2070357
SIGAda
Keywords
Field
DocType
program analysis,spark,symbolic execution
Programming language,Spark (mathematics),Computer science,Source code,Static analysis,Usability,Real-time computing,Automation,Software,Symbolic execution,Program analysis
Conference
Volume
Issue
ISSN
31
3
1094-3641
Citations 
PageRank 
References 
0
0.34
14
Authors
6
Name
Order
Citations
PageRank
Jason Belt1304.72
John Hatcliff22373212.83
Robby31489104.82
Patrice Chalin440532.02
David Hardin5344.52
Xianghua Deng617011.13