The following chart provides an overview of evolution of the major features of the Ada programming language.
| Programming Structure, Modularity
| Ada 83
| Ada 95
| Ada 2005
| Ada 2012*
|
| Packages |
√ |
√ |
√ |
√ |
| Child units |
|
√ |
√ |
√ |
| Limited with clauses and
mutually dependent specs |
|
|
√ |
√ |
| Generic units |
√ |
√ |
√ |
√ |
| Formal packages |
|
√ |
√ |
√ |
| Partial parametrization |
|
|
√ |
√ |
| Conditional expressions, Case expressions |
|
|
|
√ |
| Quantified expressions |
|
|
|
√ |
| In-out parameters for functions |
|
|
|
√ |
| Iterators |
|
|
|
√ |
| Expression functions |
|
|
|
√ |
| Object-Oriented Programming |
Ada 83 |
Ada 95 |
Ada 2005 |
Ada 2012* |
| Derived types |
√ |
√ |
√ |
√ |
| Tagged types |
|
√ |
√ |
√ |
| Multiple inheritance of interfaces |
|
|
√ |
√ |
| Named access types |
√ |
√ |
√ |
√ |
| Access parameters, Access to subprograms |
|
√ |
√ |
√ |
| Enhanced anonymous access types |
|
|
√ |
√ |
| Aggregates |
√ |
√ |
√ |
√ |
| Extension aggregates |
|
√ |
√ |
√ |
| Aggregates of limited type |
|
|
√ |
√ |
| Unchecked deallocation |
√ |
√ |
√ |
√ |
| Controlled types, Accessibility rules |
|
√ |
√ |
√ |
| Accessibility rules for anonymous types |
|
|
√ |
√ |
| Preconditions and postconditions |
|
|
|
√ |
| Type invariants |
|
|
|
√ |
| Subtype predicates |
|
|
|
√ |
| Concurrency |
Ada 83 |
Ada 95 |
Ada 2005 |
Ada 2012* |
| Tasks |
√ |
√ |
√ |
√ |
| Protected types, Distributed annex |
|
√ |
√ |
√ |
| Synchronized interfaces |
|
|
√ |
√ |
| Delays, Timed calls |
√ |
√ |
√ |
√ |
| Real-time annex |
|
√ |
√ |
√ |
| Ravenscar profile, Scheduling policies |
|
|
√ |
√ |
| Multiprocessor affinity, barriers |
|
|
|
√ |
| Re-queue on synchronized interfaces |
|
|
|
√ |
| Ravenscar for multiprocessor systems |
|
|
|
√ |
| Scientific Computing
| Ada 83 |
Ada 95 |
Ada 2005 |
Ada 2012* |
| Numeric types |
√ |
√ |
√ |
√ |
| Complex types |
|
√ |
√ |
√ |
| Vector/matrix libraries |
|
|
√ |
√ |
| Standard
Libraries |
Ada 83 |
Ada 95 |
Ada 2005 |
Ada 2012* |
| Input/output |
√ |
√ |
√ |
√ |
| Elementary functions |
|
√ |
√ |
√ |
| Containers |
|
|
√ |
√ |
| Bounded Containers, holder containers, multiway trees |
|
|
|
√ |
| Task-safe queues |
|
|
|
√ |
| Character
Support |
Ada 83 |
Ada 95 |
Ada 2005 |
Ada 2012* |
| 7-bit ASCII |
√ |
√ |
√ |
√ |
| 8/16 bit |
|
√ |
√ |
√ |
| 8/16/32 bit (full unicode) |
|
|
√ |
√ |
| String Encoding package |
|
|
|
√ |
* Ada 2012 will be the next ISO standard of Ada.