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.
This book constitutes the refereed proceedings of the 22nd Ada-Europe International Conference on Reliable Software Technologies, Ada-Europe 2017, held in Vienna, Austria, in June 2017. The revised 15 full papers presented were carefully reviewed and selected from 37 submissions. They are organized in topical sections on runtimes, safety and security, timing verification, programming models, the future of safety-minded languages, mixed criticality.
This book constitutes the proceedings of the 23rd Ada-Europe International Conference on Reliable Software Technologies, Ada-Europe 2018, held in Lisbon, Portugal, in June 2018. The 10 papers presented in this volume were carefully reviewed and selected from 27 submissions. They were organized in topical sections named: safety and security; Ada 202X; handling implicit overhead; real-time scheduling; and new application domains.
The latest edition of the definitive guide to the Ada language covers the full details of the core language Ada 2012 as updated by the 2016 ISO Corrigendum and introduces the key new features in Ada 2022. The book is in four parts. It begins by introducing the fundamental concepts for newcomers, before moving onto algorithmic aspects and then structural features such as OOP and multitasking. The fourth part gives details of the standard library and interaction with the external environment. Six complete executable programs illustrate the core features of the language in action. The book concludes with an appendix focussing on the new features in Ada 2022. These new features aid program proof and the efficient use of multicore architectures.
This book constitutes the refereed proceedings of the 15th International Conference on Software Engineering and Formal Methods, SEFM 2017, held in Trento, Italy, in September 2017. The 17 full papers and 6 short papers presented were carefully reviewed and selected from 102 submissions. The papers deal with a large range of topics in the following research areas: new frontiers in software architecture; software verification and testing; software development methods; application and technology transfer; security and safety; and design principles.
This book constitutes the refereed proceedings of the FirstInternational Conference on Reliability, Safety, and Security of RailwaySystems, RSSRail 2016, held in Paris, France, in June 2016. The 15 revised full papers presented were carefully reviewed andselected from 36 initial submissions. The papers cover a wide range oftopics including failure analysis, interlocking verification, formalsystem specification and refinement, security analysis of ERTMS, safetyverification, formalisation of requirements, proof automation,operational security, railway system reliability, risk assessment forERTMS, and verification of EN-50128 safety requirements.
This volume constitutes the thoroughly refereed post-conference proceedings of the 10th International Conference on Verified Software: Theories, Tools, and Experiments, VSTTE 2018, held in Oxford, UK, in July 2018. The 19 full papers presented were carefully revised and selected from 24 submissions. The papers describe large-scale verification efforts that involve collaboration, theory unification, tool integration, and formalized domain knowledge as well as novel experiments and case studies evaluating verification techniques and technologies.
The two-volume set LNCS 9952 and LNCS 9953 constitutes the refereed proceedings of the 7th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation, ISoLA 2016, held in Imperial, Corfu, Greece, in October 2016. The papers presented in this volume were carefully reviewed and selected for inclusion in the proceedings. Featuring a track introduction to each section, the papers are organized in topical sections named: statistical model checking; evaluation and reproducibility of program analysis and verification; ModSyn-PP: modular synthesis of programs and processes; semantic heterogeneity in the formal development of complex systems; static and runtime verification: competitors or friends?; rigorous engineering of collective adaptive systems; correctness-by-construction and post-hoc verification: friends or foes?; privacy and security issues in information systems; towards a unified view of modeling and programming; formal methods and safety certification: challenges in the railways domain; RVE: runtime verification and enforcement, the (industrial) application perspective; variability modeling for scalable software evolution; detecting and understanding software doping; learning systems: machine-learning in software products and learning-based analysis of software systems; testing the internet of things; doctoral symposium; industrial track; RERS challenge; and STRESS.