Welcome to Pittsburgh and to HILT 2013, this year's annual international conference of the ACM Special Interest Group on the Ada Programming Language (SIGAda).
HILT 2013 features a top-quality technical program focused on the issues associated with high integrity software -- where a failure could cause loss of human life or have other unacceptable consequences -- and on the solutions provided by language technology. "Language technology" here encompasses not only programming languages but also languages for expressing specifications, program properties, domain models, and other attributes of the software or the overall system.
HILT 2013 consists of two days of tutorials, and three days of conference sessions. The tutorials cover a wide range of topics: Ada 2012, proving safety of parallel and multi-threaded programs, Formula 2.0: a language for formal specification and a tool for automated analysis, satisfiability modulo theories for high integrity development, practical specification and verification with code contracts, bounded model checking for high-integrity software, and service oriented architecture concepts and implementation.
The conference program includes keynote and invited presentations from internationally recognized experts:
Edmund M. Clarke (Carnegie Mellon University, 2007 Turing Award Winner), on Model Checking and the Curse of Dimensionality;
Jeannette Wing (Microsoft Research), on Formal Methods: An Industrial Perspective;
John Goodenough (Carnegie Mellon University Software Engineering Institute), on Building Confidence in System Behavior; and
Michael Whalen (University of Minnesota), on Up and Out: Scaling Formal Analysis Using Model-Based Development and Architecture Modeling.
HILT 2013 conference sessions deal with a range of topics associated with safe, secure and reliable software: formal verification technologies and toolsets, high-integrity parallel programing, model-based integration and code generation, architecture level design languages and compositional verification, and approaches to software safety and security. You will learn the latest developments in software verification technologies, and hear industrial presentations from practitioners. The accompanying exhibits will give you the opportunity to meet vendors and find out about their latest offerings. Vendors include AdaCore (Platinum Level); Microsoft Research (Gold Level); Ellidiss, Verocel (Silver Level); and LDRA, MathWorks (Basic Level).
At HILT 2013 you will learn about both the challenges confronting high integrity software and the solutions available to address them. Perhaps just as important are the social interactions that you get at a live conference: the chance to meet and talk with researchers and practitioners in industry, academia, and government, to ask them questions, and to explain your own work and interests. These renewed and new associations can be as valuable as the technical program at professional conferences, and their benefits will continue to reward you well after you return home.
Proceeding Downloads
Tutorial: proving safety of parallel / multi-threaded programs
This tutorial will introduce the attendees to analysis and proof techniques for programs using parallelism and multi-threading. There are no specific prerequisites, but a familiarity with the notions of preconditions and postconditions, aliasing, race ...
Engineering domain-specific languages with formula 2.0
Domain-specific languages (DSLs) are useful for capturing and reusing engineering expertise. They can formalize industrial patterns and practices while increasing the scalability of verification, because input programs are written at a higher level of ...
Practical specification and verification with code contracts
In this tutorial I will introduce CodeContracts, the .NET solution for contract specifications. CodeContracts consist of a language and compiler-agnostic API to express contracts, and of a set of tools to automatically generate the documentation and to ...
Bounded model checking of high-integrity software
Model checking [5] is an automated algorithmic technique for exhaustive verification of systems, described as finite state machines, against temporal logic [9] specifications. It has been used successfully to verify hardware at an industrial scale [6]. ...
Service-oriented architecture (SOA) concepts and implementations
This tutorial explains how to implement a Service-Oriented Architecture (SOA) for reliable systems using an Enterprise Service Bus (ESB) and the Ada Web Server (AWS). The first part of the tutorial describes terms of Service-Oriented Architectures (SOA) ...
Technology for inferring contracts from code
Contracts are a simple yet very powerful form of specification. They consists of method preconditions and post-conditions, of object invariants, and of assertions and loop invariants. Ideally, the programmer will annotate all of her code with contracts ...
SAW: the software analysis workbench
Galois has developed a suite of symbolic simulation and formal analysis tools, collectively called the Software Analysis Workbench (SAW). SAW provides security analysts and engineers with the ability to generate formal models from C and Java programs ...
Towards the formalization of SPARK 2014 semantics with explicit run-time checks using coq
- Pierre Courtieu,
- Maria Virginia Aponte,
- Tristan Crolard,
- Zhi Zhang,
- Fnu Robby,
- Jason Belt,
- John Hatcliff,
- Jerome Guitton,
- Trevor Jennings
We present the first steps of a broad effort to develop a formal representation of SPARK 2014 suitable for supporting machine-verified static analyses and translations. In our initial work, we have developed technology for translating the GNAT compiler'...
Real-time programming on accelerator many-core processors
Multi-core platforms are challenging the way software is developed, in all application domains. For the particular case of real-time systems, models for the development of parallel software must be able to be shown correct in both functional and non-...
Bringing safe, dynamic parallel programming to the spark verifiable subset of ada
SPARK is a verifiable subset of Ada which has been in use for over 20 years for developing the most critical parts of complex real-time applications [1][2]. A restricted subset of the Ada tasking model is included in the newer versions of SPARK ("...
Up and out: scaling formal analysis using model-based development and architecture modeling
Systems are naturally constructed in hierarchies in which design choices made at higher levels of abstraction ``flow down'' to requirements on system components at lower levels of abstraction. Thus, whether an aspect of the system is a design choice or ...
An approach to integration of complex systems: the SAVI virtual integration process
The SAVI approach to integration embodies three fundamental concepts: (1) an architecture-centric emphasis (wrapped around an annotated architectural model with analyses carried out at the system level after modifications); (2) a component-based ...
Building confidence in system behavior
If the use of Ada (or SPARK or some other tool) increases our confidence in the behavior of high integrity software systems, why does it do so? What do we mean by confidence, and what is a justified basis for asserting some level of confidence? In this ...
Compositional verification of a medical device system
Complex systems are by necessity hierarchically organized. Decomposition into subsystems allows for intellectual control, as well as enabling different subsystems to be created by distinct teams. This decomposition affects both requirements and ...
Illustrating the AADL error modeling annex (v.2) using a simple safety-critical medical device
Developing and certifying safety-critical and highly reliable systems almost always includes significant emphasis on hazard analysis and risk assessment. There have been substantial improvements in automation and formalization of other aspects of ...
Formal methods: an industrial perspective
Formal methods research has made tremendous progress since the 1980s when a proof using a theorem prover was worthy of a Ph.D. thesis and a bug in a VLSI textbook was found using a model checker. Now, with advances in theorem proving, model checking, ...
Automatic versus interactive program verification
We report on experiences in using two very different program verification technologies. One of them is based on object-oriented assertion languages and it comes with automatic static verification of object-oriented programs. The other technology is ...
Index Terms
- Proceedings of the 2013 ACM SIGAda annual conference on High integrity language technology