Ada Comparison Chart
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 | √ |