Ada 2005 FAQ

What is Ada 2005?
I thought that was called Ada 200Y or Ada 2006.
What’s new in Ada 2005?
What didn’t make the grade in Ada 2005?
How can I found out more about Ada 2005?
How can I get an electronic copy of the new Reference Manual?
How can I get a print copy of the new Reference Manual?

 

Ada 2005 is the informal name for the recent update to the Ada language. Formally, it is embodied in an Amendment to the Ada standard (ISO/IEC 8652:1995). It has been approved by the ISO/IEC standardization process and published as ISO/IEC 8652:1995/Amd 1:2007.

Various informal names have been proposed and used for this update. The informal names of the different Ada versions traditionally include the year of the publication of the Standard. An early guess was that would occur in 2005, but that proved to be overly optimistic. However, 2005 was the year during which most of the technical issues were decided, and WG 9, with the input of the Ada community, has decided to use Ada 2005 as the informal name of this update.

Remember that the official name of the language is just “Ada” — that never changes. Informal names exist to allow readers to tell the difference between the various versions of the Ada language. The informal name for this version could be anything; “Willywog Ada” would do just as fine. Ultimately, the community decides on an informal name to use consistently, and Ada 2005 was the choice here.

The Introduction to the draft consolidated Ada Reference Manual says the following:

The following significant changes with respect to the 1995 edition are incorporated:
  • Support for program text is extended to cover the entire ISO/IEC 10646:2003 repertoire. Execution support now includes the 32-bit character set. See clauses 2.1, 3.5.2, 3.6.3, A.1, A.3, and A.4.
  • The object-oriented model has been improved by the addition of an interface facility which provides multiple inheritance and additional flexibility for type extensions. See clauses 3.4, 3.9, and 7.3. An alternative notation for calling operations more akin to that used in other languages has also been added. See clause 4.1.3.
  • Access types have been further extended to unify properties such as the ability to access constants and to exclude null values. See clause 3.10. Anonymous access types are now permitted more freely and anonymous access-to-subprogram types are introduced. See clauses 3.3, 3.6, 3.10, and 8.5.1.
  • The control of structure and visibility has been enhanced to permit mutually dependent references between units and finer control over access from the private part of a package. See clauses 3.10.1 and 10.1.2. In addition, limited types have been made more useful by the provision of aggregates, constants, and constructor functions. See clauses 4.3, 6.5, and 7.5.
  • The predefined environment has been extended to include additional time and calendar operations, improved string handling, a comprehensive container library, file and directory management, and access to environment variables. See clauses 9.6.1, A.4, A.16, A.17, and A.18.
  • Two of the Specialized Needs Annexes have been considerably enhanced:
    • The Real-Time Systems Annex now includes the Ravenscar profile for high-integrity systems, further dispatching policies such as Round Robin and Earliest Deadline First, support for timing events, and support for control of CPU time utilization. See clauses D.2, D.13, D.14, and D.15.
    • The Numerics Annex now includes support for real and complex vectors and matrices as previously defined in ISO/IEC 13813:1997 plus further basic operations for linear algebra. See clause G.3.
  • The overall reliability of the language has been enhanced by a number of improvements. These include new syntax which detects accidental overloading, as well as pragmas for making assertions and giving better control over the suppression of checks. See clauses 6.1, 11.4.2, and 11.5.

A number of good ideas were not included in Ada 2005 because of technical issues, insufficient detail in their design, and lack of manpower. It is thought that many of these ideas will be revisited the next time Ada is revised.

  • Aggregates for private types (see AI-00389)
  • Partial generic instantiations (for private types – see AI-00359-04)
  • Better support for IEC 559:1989 floating point (see AI-00315)
  • Additional defaults for generic formal parameters (see AI-00299)
  • Pre- and Post-conditions for subprograms (see AI-00288)
  • Type and package invariants (see AI-00375)
  • Better support for grouping of and data associated with exceptions (see AI-00264)
  • Sockets library (see AI-00292)

Of course, a lot of bad or controversial ideas were discussed and discarded as well. We’re not going to enumerate them; they deserve to live in anonymity.

A good place to start is the Ada 2005 Rationale for Ada 2005. The Rationale provides an overview of Ada 2005 features, examples of their use, compatibility with Ada 95, and more.

A number of articles on Ada 2005 were published in the August 2006 issue of Crosstalk. They include an overview of Ada 2005, specific discussions of its impact on real-time and high-integrity applications, a look at using Ada with .NET, and a peek into the design process of Ada 2005.

The September 2006 issue of Embedded Systems Design includes Programming Real-Time with Ada 2005, which introduces Ada 2005 real-time programming features assuming no prior knowledge of Ada.

For an look at the entire Ada language, including both old and new features, John Barnes has updated his textbook; the new edition is Programming in Ada 2005. Other textbooks on Ada 2005 have also been published. You can find out more about all of them on our Learning Materials page.

Sometimes, it’s best to just go to the horse’s mouth. Ada Europe has sponsored a combined version of the Ada standard that contains the text of all three documents (the original Ada 95 standard, the 2001 Technical Corrigendum [bug fixes], and the Amendment). You can find it in our standards section.

Finally, for those who must go to the source, drafts of the actual Amendment document are available. The actual final standard has to be purchased and is quite expensive; you can buy it at ISO’s publications site. We don’t recommend reading the Amendment because it consists of changes to the earlier Ada 95 standard, and thus it is rather incomplete. It’s telling that the committee that designed Ada 2005 worked primarily from drafts of the combined version.

Electronic versions of the Ada 2005 Reference Manual are available on this website. Print versions have been published by Springer, and should be available from your favorite bookseller. See the article Accessing the Ada Language Reference Manuals for more information on obtaining both electronic and print copies of the Ada 2005 Reference Manual.

Share and Enjoy:
  • email
  • LinkedIn
  • Twitter
  • Facebook
  • Digg
  • RSS