Rationale for Ada 2012

John Barnes
Contents   Index   References   Search   Previous   Next 

1.2 Scope of revision

The changes from Ada 95 to Ada 2005 were significant (although not so large as the changes from Ada 83 to Ada 95). The main additions were
in the OO area, multiple inheritance using interfaces and the ability to make calls using prefixed notation,
more flexible access types with anonymous types, more control over null and constant, and downward closures via access to subprogram types,
enhanced structure and visibility control by the introduction of limited with and private with clauses and by an extended form of return statement,
in the real-time area, the Ravenscar profile [2], various new scheduling polices, timers and execution time budget control,
some minor improvements to exception handling, numerics (especially fixed point) and some further pragmas such as Assert,
various extensions to the standard library such as the introduction of operations on vectors and matrices, further operations on times and dates, and operations on wide wide characters; and especially:
a comprehensive library for the manipulation of containers of various kinds. 
The changes from Ada 2005 to Ada 2012 were intended to be relatively modest and largely to lead on from the experience of the additions introduced in Ada 2005. But one thing led to another and in fact the changes are of a similar order to those from Ada 95 to Ada 2005.
From the point of view of the ISO standard, Ada 2005 is the Ada 95 standard modified by two documents. First there was a Corrigendum issued in 2001 [3] and then an Amendment issued in 2007 [4]. In principle the poor user thus has to study these three documents in parallel to understand Ada 2005. However, they were informally incorporated into the Ada 2005 Reference Manual [5].
In the case of Ada 2012, this process of developing a further formal amendment would then lead to the need to consult four documents and so the intention is that the new Edition will formally be a single Revision.
The scope of this Revision is guided by a document issued by WG9 to the ARG in October 2008 [1]. The essence is that the ARG is requested to pay particular attention to
Improvements that will maintain or improve Ada's advantages, especially in those user domains where safety and criticality are prime concerns. Within this area it cites improving the use and functionality of containers, the ability to write and enforce contracts for Ada entities (for instance, via preconditions) and the capabilities of Ada on multicore and multithreaded architectures.
Improvements that will remedy shortcomings in Ada. It cites in particular the safety, use, and functionality of access types and dynamic storage management. 
So the ARG is asked to improve both OO and real-time with a strong emphasis on real-time and high integrity features. Moreover, "design by contract" features should be added whereas for the previous amendment they were rejected on the grounds that they would not be static.}
The ARG is also asked to consider the following factors in selecting features for inclusion:

Can the feature be implemented at reasonable cost?
Do users actually need it?
  Language stability.

Would it appear disturbing to current users?
  Competition and popularity.

Does it help to improve the perception of Ada and make it more competitive?

Does it ease problems of interfacing with other languages and systems?
  Language consistency.

Is it syntactically and semantically consistent with the language's current structure and design philosophy? 
As before, an important further statement is that "In order to produce a technically superior result, it is permitted to compromise backwards compatibility when the impact on users is judged to be acceptable." In other words don't be paranoid about compatibility.
Finally, there is a warning about secondary standards. Its essence is don't use secondary standards if you can get the material into the RM itself.
The guidelines conclude with the target schedule. This includes WG9 approval of the scope of the amendment in June 2010 which was achieved and submission to ISO/IEC JTC1 in late 2011.

Contents   Index   References   Search   Previous   Next 
© 2011, 2012, 2013 John Barnes Informatics.
Sponsored in part by:
The Ada Resource Association:


and   Ada-Europe: