Ada 2012

The Next Generation of Ada

The WG9 committee, after discussions with the ARG and with members of the Ada community, has instructed the ARG to complete the Amendment to Ada 2005 so that ISO standardization of the new version can be completed by 2012. This is a relatively short horizon. but it matches the interval between previous releases, demonstrates that the language continues to evolve with software theory and practice, and at the same time places a bound on the changes to the language, and ensures that they do not present an undue implementation burden on existing compilers.

Below is an brief survey of the more important enhancements that the ARG is discussing, and that are likely to appear in Ada 2012. These enhancements can be grouped as follows:

The most important enhancements are those directly related to correctness, namely the introduction of more powerful assertion mechanisms in the language: pre- and postconditions for subprograms, global assertions, type invariants, are other mechanisms that encourage the programmer to better specify the meaning of the code they write, and allow the run-time to verify that this meaning is in fact obeyed. These “programming by contract” features will also be useful for static analysis tools.

There are a number of enhancements to the container library, including task-safe queues, and bounded containers that do not use dynamic allocation.

There are a number of enhancements that contribute to expressiveness and readability: conditional expressions, case expressions, more powerful membership tests, and quantified expressions. A new iterator form over containers will make them much easier to use. Most of these are syntactic enhancements whose semantics is intuitive and fit well in Ada. Several of these are intended to simplify the expression of complex expressions that are likely to appear in pre- and postconditions and in type invariants.

One addition in this category has a larger conceptual import because it reverses an early design decision that had been controversial ever since Ada 83: functions will now have in and in out formal parameters.

Some enhancements concern visibility : more powerful use clauses, and additional uses of incomplete types that simplify the construction of nested containers.

There are a number of enhancements in the area of concurrency, some of which address the multi core revolution.

Each one of the enhancements mentioned above corresponds to one or more Ada Issues (AIs). For further details,Please refer to the database at the Ada Information Clearinghouse (see http://www.ada-auth.org/AI05-SUMMARY.HTML where the interested reader will find up-to-date descriptions and a full list of Amendment AIs, along with their status, motivation and ongoing discussions).

View the Ada Comparison Chart to see how Ada 2012 stacks up to previous versions of the language.
Share and Enjoy:
  • email
  • LinkedIn
  • Twitter
  • Facebook
  • Digg
  • RSS