The following chart (from http://www.adacore.com/home/ada_answers/comparison-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      

* Ada 2012 will be the next ISO standard of Ada.