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       √