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 √

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, Postconditions, Type invariants √

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 √

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 √