Skip to main content Accessibility help
Building High Integrity Applications with SPARK
  • Cited by 50
  • 60.99 (USD)
    Digital access
    (PDF download and/or read online)
    Add to cart
    Added to cart
    Digital access
    (PDF download and/or read online)
    View cart
  • Export citation
  • Recommend to librarian

Book description

Software is pervasive in our lives. We are accustomed to dealing with the failures of much of that software - restarting an application is a very familiar solution. Such solutions are unacceptable when the software controls our cars, airplanes and medical devices or manages our private information. These applications must run without error. SPARK provides a means, based on mathematical proof, to guarantee that a program has no errors. SPARK is a formally defined programming language and a set of verification tools specifically designed to support the development of software used in high integrity applications. Using SPARK, developers can formally verify properties of their code such as information flow, freedom from runtime errors, functional correctness, security properties and safety properties. Written by two SPARK experts, this is the first introduction to the just-released 2014 version. It will help students and developers alike master the basic concepts for building systems with SPARK.

Refine List

Actions for selected content:

Select all | Deselect all
  • View selected items
  • Export citations
  • Download PDF (zip)
  • Save to Kindle
  • Save to Dropbox
  • Save to Google Drive

Save Search

You can save your searches here and later view and run them again in "My saved searches".

Please provide a title, maximum of 40 characters.


Ada Conformity Assessment Authority. 2012. Ada Reference Manual, ISO/IEC 8652:2012 (E). 3rd edn.
Adams, C., Cain, P., Pinkas, D., and Zuccherato, R. 2001 (August). RFC-3161: Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP). Freemont, CA: Internet Engineering Task Force.
Aho, Alfred V., Lam, Monica S., Sethi, Ravi, and Ullman, Jeffrey D. 2007. Compilers Principles, Techniques, & Tools. 2nd edn. Boston, MA: Addison Wesley.
Amey, Peter. 2002. Correctness by Construction: Better Can Also Be Cheaper. CrossTalk, the Journal of Defense Software Engineering, 15(3), 24–28.
Ammann, Paul, and Offutt, Jeff. 2008. Introduction to Software Testing. Cambridge: Cambridge University Press.
Barnes, John. 2012. Spark: The Proven Approach to High Integrity Software., UK: Altran Praxis.
Barnes, John. 2014. Programming in Ada 2012. Cambridge: Cambridge University Press.
Beizer, Boris. 1990. Software Testing Techniques. New York: Van Nostrand Reinhold.
Ben-Ari, Mordechai. 2009. Ada for Software Engineers. 2nd edn. London: Springer- Verlag.
Bjørner, Nikolaj. 2012. Taking Satisfiability to the Next Level with Z3. Pages 1–8 of: Gramlich, Bernhard, Miller, Dale, and Sattler, Uli (eds), Automated Reasoning. Lecture Notes in Computer Science, vol. 7364. Berlin: Springer.
Black, Rex. 2007. Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional. Indianapolis: Wiley.
Blair, Michael, Obenski, Sally, and Bridickas, Paula. 1992. Patriot Missile Defense: Software Problem Led to System Failure at Dhahran, Saudi Arabia. Tech. rept. GAO/IMTEC-92-26. Washington, DC: United States General Accounting Office.
Bobot, François, Filliâtre, Jean-Christophe, Marché, Claude, and Paskevich, Andrei. 2011. Why3: Shepherd Your Herd of Provers. In: In Workshop on Intermediate Verication Languages (pp. 53–64). Wroclaw, Poland.
Chapin, Peter. 2014. Thumper.
Chapman, Roderick, Botcazou, Eric, and Wallenburg, Angela. 2011. SPARKSkein: A Formal and Fast Reference Implementation of Skein. Pages 16–27 of: Proceedings of the 14th Brazilian Conference on Formal Methods: Foundations and Applications. SBMF'11. Berlin: Springer-Verlag.
Chapman, Roderick, and Schanda, Florian. 2014. Are We There Yet? 20 Years of Industrial Theorem Provingwith Spark. Pages 17–26 of:Klein, Gerwin, and Gamboa, Ruben (eds), Interactive Theorem Proving. Lecture Notes in Computer Science, vol. 8558. Switzerland: Springer International Publishing.
Comar, Cyrille, Kanig, Johannes, and Moy, Yannick. 2012. Integrating Formal Program Verification with Testing. Tech. rept.AdaCore. uploads_gems/Hi-Lite_ERTS-2012.pdf.
Croxford, Martin, and Chapman, Roderick. 2005. Correctness by Construction: AManifesto for High-Integrity Software. CrossTalk, the Journal of Defense Software Engineering, 18(12), 5–8.
Dale, Nell, andMcCormick, John. 2007. Ada Plus Data Structures: An Object-Oriented Approach. 2nd edn. Sudbury, MA: Jones and Bartlett.
Dale, Nell, Weems, Chip, and McCormick, John. 2000. Programming and Problem Solving with Ada 95. 2nd edn. Sudbury, MA: Jones and Bartlett.
Davis, Noopur, and Mullaney, Julia. 2003. The Team Software Process (TSP) in Practice: A Summary of Recent Results. Tech. rept. CMU/SEI-2003-TR-014 ESC-TR-2003- 014. Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA.
DeRemer, Frank, and Kron, Hans. 1975. Programming-in-the-Large Versus Programming-in-the-Small. Pages 114–121 of: Proceedings of the International Conference on Reliable Software. New York: Association for Computing Machinery.
Dross, Claire, Efstathopoulos, Pavlos, Lesens, David, Mentr´e, David, and Moy, Yannick. 2014. Rail, Space, Security: Three Case Studies for Spark 2014. http://www.
Dutertre, Bruno. 2014.Yices 2.2. Pages 737–744 of: Biere, Armin, and Bloem, Roderick (eds), Computer-Aided Verification (CAV'2014). Lecture Notes in Computer Science, vol. 8559. Heidelberg, Germany: Springer.
Eisenstadt, Marc. 1997. My Hairiest Bug War Stories. Communications of the ACM, 40(4), 30–37.
English, John. 2001. Ada 95: The Craft of Object-Oriented Programming. content/docs/craft/html/ contents.htm.
Epp, Susanna S. 2010. Discrete Mathematics with Applications. 4th edn. Pacific Grove, CA: Brooks/Cole Publishing.
Gersting, Judith. 2014. Mathematical Structures for Computer Science. 7th edn. New York: W.H. Freeman.
GNAT, 2015a. GNAT Reference Manual, gnat_rm-docs/html/gnat_rm/gnat_rm.html
GNAT, 2015b. GNAT User's Guide, gnat_ugn-docs/html/gnat_ugn/gnat_ugn.html
Hall, Anthony, and Chapman, Roderick. 2002. Correctness by Construction: Developing a Commercial Secure System. IEEE Software, 19(1), 18–25.
Humphrey, Watts. 2000. Introduction to the Team Software Process. SEI Series in Software Engineering. Boston, MA: Addison Wesley.
Humphrey, Watts. 2004. Security Changes Everything. Keynote address presented at the ACM SIGAda Annual International Conference, November 14–18, Atlanta, GA.
Humphrey, Watts. 2006a (January). Defective Software Works. News at SEI. wattsnew20041.cfm.
Humphrey, Watts. 2006b (February). Security Changes Everything. News at SEI. wattsnew20042.cfm.
International Telecommunication Union. 2002 (July). Information Technology – ASN.1 Encoding Rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER), Distinguished Encoding Rules (DER). Geneva, Switzerland.
Jones, Capers. 2000. Software Assessments, Benchmarks, and Best Practices. Addison- Wesley Information Technology Series. Boston: Addison Wesley.
Jones, Capers. 2012 (September). Software Quality in 2012: A Survey of the State of the Art. Software Quality Group of New England. presentations/2012-13/Jones-Sep-2012.pdf.
Jones, Capor. 2013. Software Defect Origins and Removal Methods. Tech. rept. Narragansett, RI: Namcook Analytics LLC.
Jorgensen, Paul. 2008. Software Testing: A Craftsman's Approach. 3rd edn. Boca Raton, FL: Auerbach Publications.
Kaner, Cem, Falk, Jack, and Nguyen, Hung Quoc. 1999. Testing Computer Software. 2nd edn. Indianapolis, IN: Wiley.
Knight, John, DeJong, Colleen, Gibbs, Matthew, and Nakano, Luis. 1997 (September). Why Are Formal Methods Not Used More Widely? In: Holloway, Michael, and Hayhurst, Kelly (eds), Proceedings of the Fourth NASA Langley Formal Methods Workshop pp. 1–12. Hampton, VA: NASA.
Knuth, Donald. 1998. The Art of Computer Programming: Seminumerical Algorithms. Vol. 2. Boston, MA: Addison-Wesley.
Mao, Wenbo. 2004. Modern Cryptography Theory and Practice. Upper Saddle River, N.J.: Pearson.
Marsh, William, and O'Neill, Ian. 1994. Formal Semantics of Spark. Tech. rept. Bath, England: Program Validation (available from Altran Praxis).
McCormick, John. 1997. Forum Letter. Communications of the ACM, 40(8), 30.
McCormick, John W., Singhoff, Frank, and Hugues, Jerome. 2011. Building Parallel, Embedded, and Real-Time Applicatins with Ada. Cambridge, England: Cambridge University Press.
Mills, Harlan, Dyer, Michael, and Linger, Richard. 1987. Cleanroom Software Engineering. IEEE Software, 4(5), 19–25.
Moy, Yannick, Ledinot, Emmanuel, Delseny, Herve,Wiels, Virginie, and Monate, Benjamin. 2013. Testing or Formal Verification: DO-178C Alternatives and Industrial Experience. IEEE Software, 30(3), 50–57.
NASA. 2011 (January). National Highway Traffic Safety Administration Toyota Unintended Acceleration Investigation. Technical Assessment Report TI-10-00618.Washington, DC: NASA Engineering and Safety Center.
New York University. 2014. CVC4: The SMT Solver. web/.
National Institute of Standards and Technology. 2002 (May). The Economic Impacts of Inadequate Infrastructure for Software Testing. Planning Report 02-3. Washington, DC: NIST.
OCamlPro. 2014. The Alt-Ergo Theorem Prover.
OpenSSL Project. 2014a. OpenSSL Cryptography and SSL/TLS Toolkit. https://
OpenSSL Project. 2014b. OpenSSL Vulnerabilities. news/vulnerabilities.html.
Parnas, David Lorge, and Madey, . 1995 (January). Functional Documents for Computer Systems. Science of Computer Programming, 25(1), 41–61.
Pattis, Richard E. 1988. Textbook Errors in Binary Searching. SIGCSE Bulletin, 20(1), 190–194.
Paulk, Mark C. 2009. A History of the Capability Maturity Model for Software. ASQ Software Quality Professional, 12(1), 5–19.
Radio Technical Commission for Aeronautics (RTCA). 2011a. DO-178C Software Considerations in Airborne Systems and Equipment Certification. RTCA and European Organisation for Civil Aviation Equipment (EUROCAE).
Radio Technical Commission for Aeronautics (RTCA). 2011b. DO-333, Formal Methods Supplement to DO-178C and DO-278A. RTCA and European Organisation for Civil Aviation Equipment (EUROCAE).
Riehle, Richard. 2003. Ada Distilled: An Introduction to Ada Programming for Experienced Computer Programmers. Tech. rept. Salinas, CA: AdaWorks Software Engineering.
Rosen, Kenneth. 2011. Discrete Mathematics and Its Applications. 7th edn. New York: McGraw-Hill.
Spark Team. 2011 (September). INFORMED Design Method for SPARK. Bath, England.
Spark Team. 2014a. Spark 2014 Reference Manual. New York: AdaCore. http://
Spark Team. 2014b. Spark 2014 Toolset User's Guide. New York and Paris: AdaCore.
Stallings, William. 2014. Cryptography and Network Security, Principles and Practice. 6th edn. Upper Saddle River, N.J: Pearson.
Wikibooks. 2014. Ada Programming. Ada_Programming.


Altmetric attention score

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Book summary page views

Total views: 0 *
Loading metrics...

* Views captured on Cambridge Core between #date#. This data will be updated every 24 hours.

Usage data cannot currently be displayed.