Welcome to Boston and to HILT 2012, this year's annual international conference of the ACM Special Interest Group on the Ada Programming Language (SIGAda).
HILT 2012 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 2012 consists of two days of tutorials, and three days of conference sessions. The tutorials cover a wide range of topics: designing for multitasking and multicore environments; leading-edge Ada verification technologies; contract-based programming and object-oriented programming in Ada 2012; safety of embedded software; Microsoft Research's Dafny automatic program verifier; Service-Oriented Architecture; and safety-critical Java.
The conference program includes keynote presentations from internationally recognized experts:
Kathleen Fisher (DARPA Information Innovation Office), on High-Assurance Cyber Military Systems (HACMS) / High-Assurance Vehicles;
Nancy Leveson (MIT), on Challenges for Safety-Critical Software;
Barbara Liskov (MIT), on Programming the Turing Machine;
Greg Morrisett (Harvard Univ.), on Hardening Legacy C/C++ Code; and
Guy L. Steele, Jr. (Oracle Labs), on Programming Language Life Cycles.
HILT 2012 conference sessions deal with a range of topics associated with safe, secure and reliable software: analyzing and proving programs (program verification at compile time, advancing compilation technology); security and safety; real-time systems; and designing and implementing languages (compiler certification issues). 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); Ellidiss, LDRA, Microsoft Research, and TASC (Silver Level); and MathWorks (Basic Level).
At HILT 2012 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
Hilt'12 tutorial overview / design of multitask software: the entity-life modeling approach
The tutorial introduces entity-life modeling (ELM), a design approach for multitask, reactive software. It is not a multistep method but rather an extension of object orientation into the time dimension: The central idea is that the task architecture ...
Leading-edge Ada verification technologies: highly automated Ada contract checking using bakar kiasan
This tutorial presents a new approach to Spark/Ada contract checking using Bakar Kiasan--a highly automated, evidence-based symbolic execution tool. Bakar Kiasan aims to lower the barrier of entry and reduce the burden of engineers as they specify and ...
Leading-edge ada verification technologies: combining testing and verification with GNATTest and GNATProve -- the hi-lite project
We give a hands-on introduction to the tools GNATtest and GNATprove, both developed at AdaCore in the Hi-Lite research project. They allow to do verification of Ada 2012 contracts through testing and formal verification, and also allow a combination of ...
Safety of embedded software
Traditional safety techniques were created 40-50 years ago for electro-mechanical systems. The underlying assumptions of these techniques about the cause of accidents (e.g., component failure) do not match software nor do they match the types of ...
Developing verified programs with Dafny
Reasoning about programs is a fundamental skill that every software engineer needs. This tutorial provides participants an opportunity to get hands-on experience with Dafny, a tool that can help develop this skill.
Dafny is a programming language and ...
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) ...
Tutorial: multicore programming using divide-and-conquer and work stealing
This tutorial is aimed at engineers and students who are interested in learning more about parallel programming, particularly for systems with growing numbers of physical processors or cores.
Tutorial overview: understanding dynamic memory management in safety critical java
In spite of the high-level abstraction benefits of automatic tracing garbage collection, current prevailing sentiment within the safety certification community is that a simpler memory model is required for the most rigorous levels of software safety ...
Keynote presentation: Programming the turing machine
Turing provided the basis for modern computer science. However there is a huge gap between a Turing machine and the kinds of applications we use today. This gap is bridged by software, and designing and implementing large programs is a difficult task. ...
Program proving using intermediate verification languages (IVLs) like boogie and why3
A program verifier is a complex piece of software. To deal with this complexity, a standard architecture of a modern program verifier consists of two basic parts: a front end and a back end, separated by an intermediate verification language (IVL). The ...
Hi-Lite: the convergence of compiler technology and program verification
Formal program verification tools check that a program correctly implements its specification. Existing specification languages for well-known programming languages (Ada, C, Java, C#) have been developed independently from the programming language to ...
Implementation of a simple dimensionality checking system in Ada 2012
We present the design and implementation of a dimensionality checking system in Ada 2012. The system is implemented in the GNAT compiler, and performs compile-time checks to verify the dimensional consistency of physical computations. The system allows ...
A new robust and efficient implementation of controlled types in the GNAT compiler
This paper discusses a new implementation model for supporting Ada controlled types in the GNAT compiler. After reviewing the semantics of controlled types, we revisit the original implementation from 1995 and discuss its performance issues. We then ...
HACMS: high assurance cyber military systems
Embedded systems form a ubiquitous, networked, computing substrate that underlies much of modern technological society. Such systems range from large supervisory control and data acquisition (SCADA) systems that manage physical infrastructure to medical ...
A DSL for cross-domain security
Guardol is a domain-specific language focused on the creation of high-assurance network guards and the specification of guard properties. The Guardol system generates Ada code from Guardol programs and also provides specification and automated ...
Real-time Java in modernization of the aegis weapon system
The U.S. Navy's Aegis system, considered to be the "shield of the fleet", provides area air defense for a carrier battle group in addition to providing long-range ballistic missile defense. A typical Aegis deployment consists of about 100 computers, ...
FAA's controller pilot automatic data communication (data comm) system software development
To meet future demands and avoid gridlock in the sky and at airports, US Federal Aviation Administration's (FAA) NextGen Data Communications (DataComm) Program is designed to advance today's analog voice-only air-to-ground communications system to one ...
Synchronization cannot be implemented as a library
Writing efficient programs for increasingly parallel computer architectures requires the use of hardware primitives, such as atomic read-modify-write instructions or transactional memory. While new libraries and language constructs are introduced to ...
Applicability of real-time schedulability analysis on a software radio protocol
In this paper, we present our experience on integrating timing constraint verification and analysis, by using the real-time scheduling theory, in an industrial context. The verification process has been integrated into a design flow at THALES ...
Programming language life cycles
New programming languages keep getting invented, and old languages (most of them) eventually die. Many languages are eventually reduced to, if anything, a single surviving slogan or idea. (Examples: COBOL = programs look like English; SNOBOL = pattern ...
Adapting ACATS for use with run-time checks suppressed
A well-known issue with compiler conformance testing is that the tested environment may differ from the end user's environment, in ways that defy analysis. Possible differences include the host or target computer instruction set, the host or target ...
Panel on compiler certification: should we trust our compiler?
Whether programming in a high-level modeling language providing automatic code generation, in a formally-verifiable language, in a language with advanced static analysis tools, or directly in a normal third-generation programming language, we ultimately ...