07 December 2011
Cyrille Comar, AdaCore Europe
Cyrille Comar, co founder and managing director of AdaCore Europe, speaks to New Electronics.
AdaCore evangelises an open source philosophy – how has the industry's perception of open source software changed in recent years and what benefits does it offer?
At AdaCore, FLOSS (Freely Licensed Open Source Software) has been our bread and butter for the last 20 years even though we don't consider ourselves as open source evangelists. Our core business is to invent, develop and maintain long-term, tools and technologies that help our customers build and validate high-assurance software and systems.
In doing this, we quickly realised our customers need a rich environment whenever they require a very high-level of confidence in the code they develop. We have found it more efficient business-wise, to participate to different open-source communities in order to build our commercial solution based on open-source building blocs. We also think that more industries could benefit from this type of sharing and co-operation. Many companies rely heavily on home-grown pieces of software (e.g. a real-time executive) that are very expensive to maintain and don't bring noticeable value to the final product. In order to decrease such internal costs, there are two avenues: use commercial-off-the-shelf software or share the development and maintenance of the less valuable, non-critical software in an open source community.
What makes Adacore's software programming environments suitable for a wide range of markets?
Ada is a general programming language with capabilities similar to C++ or Java. Its main difference is that it has been designed to support long lived, very large pieces of potentially critical software. As such, it emphasises code readability, strong typing, ease of maintenance and thus is of general interest for all markets where long-term reliability is more important than time-to-market.
AdaCore programming environments and tools are designed for the needs of such markets: Aeronautics, Space, Military, Railway, Automotive, Industrial automation, Medical devices, etc. It is also used in other areas when long-term maintenance or safety are of particular interest.
You've campaigned for better safety standards for embedded software systems across the aviation industry, where else is there a need for better safety legislation?
We have indeed been involved in the recent work leading to the new version of the civil avionics software standard: DO-178C. The main novelty of this standard is the capability to better take into account some of the major evolutions of Software Engineering that were not dealt with sufficiently in the previous version of the standard such as Object-Oriented Programming, Modelling or Formal Verification. Other industrial areas have different standards that are usually more recent than DO-178B and each standard has its own path to upgrade. Most probably, they will follow the DO-178C lead in due time.
More important than the standard itself, are the means of verifying its proper and complete usage. Some industries, such as the automotive one, still think they can enforce the use of their standard without independent assessment controlled by inter-government authorities. For sure such independent assessment has a cost that the automotive industry would like to avoid but is it a good thing for the safety of our principal mean of transportation? Imposing more stringent safety and security requirements will become a public safety issue sooner or later but isn't it also an opportunity for our own software industry to show its competitiveness in developing ultra-safe and secure software compared to emerging countries?
You've been involved with Ada for well over a decade – how has the language changed since then?
The Ada language is going through its 3rd major revision: Ada 95, Ada 2005 and now Ada 2012. Those evolutions have come from the feedback of the Ada community. What is particularly interesting in the evolution of the languageis that it has minimised upward compatibility issues as much as possible and thus it is relatively easy for Ada projects to adopt a newer version of the language and have access to newer paradigms without having to throw away or rewrite already written components.
What's next? What will Ada 2012 look like and what enhancements will it bring to software developers?
The latest revision brings many new features that help with modern verification techniques such as programming by contract through pre and post conditions. It also generalises the notion of constrained subtypes since it is now possible for the user to specify themself the constraints in a general way.
The new language is now even more suitable for static analysis and formal proofs. Based on this new revision of the language, the AdaCore research lab is working on an open project whose goal is to make formal programme verification easy enough that it can help reduce the costs associated with testing (Hi-Lite project).