The ISO has published a new standard for Ada, the language originally developed for the US Department of Defense. The new version, Ada 2012, has enhancements for contract-based programming.
According to the Ada Resource Association (ARA), the features added for this purpose include the ability to specify preconditions and postconditions for subprograms, and invariants for private (encapsulated) types. These take the form of Boolean expressions that can be interpreted as run-time conditions to be checked. The contract-based programming features have been designed to support the type substitutabilty guidance that has been developed as a supplement to the new avionics software safety standard DO-178C / ED-12C.
Other new features in Ada 2012 include enhancements to the containers library, additional expressiveness through features such as conditional expressions and more powerful iterators, and support for multicore platforms. The support for multicore includes task affinities, and the extension of Ada’s support for high-integrity real-time systems to multiprocessor and multicore environments.
A technical summary of Ada 2012, along with an explanation of the language’s benefits and a set of links to further information, is available at www.ada2012.org. The info includes a comparison chart that shows the evolution of the major features of the language and this video covering the new features of Ada 2012.
Ada, named in honour of Ada Lovelace who is widely recognized as the first computer programmer. was first developed from 1977 to 1983 by a team at CII Honeywell Bull under contract to the United States Department of Defense (DoD). At the time, the DoD used hundreds of programming languages and Ada was intended to be the sole replacement. This pedigree led to many forecasting that Ada would become the dominant programming language overall, but it has largely remained within government-led sectors such as avionics and space travel. Even so it has been in the top 20 languages according to the Tiobe index for the last couple of years.