An Approach to Model Checking Ada Programs

This paper describes a tool-supported method for the formal verification of Ada programs. It presents ATOS, a tool that automatically extracts from an Ada program a SPIN model, together with a set of desirable properties. ATOS is also capable of extracting properties from a specification annotated by the user in the program, inspired by the SPARK Annotation language. The goal of ATOS is to help in the verification of sequential and concurrent Ada programs, based on model checking.

[1]  Stephan Merz,et al.  Model Checking , 2000 .

[2]  Corina S. Pasareanu,et al.  Translating Ada Programs for Model Checking : A , 1998 .

[3]  Sami Evangelista,et al.  Verifying linear time temporal logic properties of concurrent Ada programs with quasar , 2003, SIGAda.

[4]  Erhard Plödereder,et al.  Ada 2005 Reference Manual. Language and Standard Libraries - International Standard ISO/IEC 8652/1995 (E) with Technical Corrigendum 1 and Amendment 1 , 2007, Lecture Notes in Computer Science.

[5]  Alastair F. Donaldson,et al.  Software Model Checking , 2014, Computing Handbook, 3rd ed..

[6]  S. Lanka. Technical report 1989. , 1990 .

[7]  Patrice Chalin,et al.  Bakar Kiasan: Flexible Contract Checking for Critical Systems Using Symbolic Execution , 2011, NASA Formal Methods.

[8]  João Pedro Marques da Silva Martins Formal verification of Ada programs: an approach based on model checking , 2011 .

[9]  Amir Pnueli,et al.  The temporal logic of programs , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[10]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[11]  Mordechai Ben-Ari,et al.  Principles of the spin model checker , 2008 .

[12]  Juan Antonio de la Puente,et al.  Reliable Software Technologies — Ada-Europe’ 99 , 2002, Lecture Notes in Computer Science.

[13]  John M. Rushby,et al.  Design and verification of secure systems , 1981, SOSP.

[14]  Lars Asplund,et al.  A Formal Model of the Ada Ravenscar Tasking Profile; Protected Objects , 1999, Ada-Europe.

[15]  Jim Alves-Foss,et al.  Using SPARK-Ada to Model and Verify a MILS Message Router , 2006 .

[16]  Thomas A. Henzinger,et al.  The software model checker B last : Applications to software engineering , 2007 .

[17]  Felix Naumann,et al.  Data fusion , 2009, CSUR.

[18]  J. S. Moore,et al.  Proof-Checking, Theorem Proving, and Program Verification. , 1983 .

[19]  Jim Alves-Foss,et al.  A multi-layered approach to security in high assurance systems , 2004, 37th Annual Hawaii International Conference on System Sciences, 2004. Proceedings of the.

[20]  M. Ben-Ari,et al.  Principles of Concurrent and Distributed Programming (2nd Edition) (Prentice-Hall International Series in Computer Science) , 2006 .

[21]  George S. Avrunin,et al.  Property specification patterns for finite-state verification , 1998, FMSP '98.

[22]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[23]  Daniel Kroening,et al.  A Survey of Automated Techniques for Formal Software Verification , 2008, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[24]  John G. P. Barnes,et al.  High Integrity Software - The SPARK Approach to Safety and Security , 2003 .

[25]  Sriram K. Rajamani,et al.  SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft , 2004, IFM.

[26]  James B. Bladen,et al.  Ada semantic interface specification (ASIS) , 1991, TRI-Ada '91.

[27]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.