About Ada Header

Ada is a state-of-the art programming language that development teams worldwide are using for critical software: from microkernels and small-footprint, real-time embedded systems to large-scale enterprise applications, and everything in between.

Why use Ada? In short, because you want to write reliable and efficient code, with confidence that it works, and not waste time and effort in the process. Ada is unique among languages in how it helps you detect and eliminate bugs early in the software life cycle, when they are least expensive to correct. And as evidenced by the many successfully fielded applications that need to meet hard time or space constraints, Ada helps you build software that is reliable, safe and secure without sacrificing performance.

At the technical level, Ada has everything you might expect in a modern language:

  • Extensive compile-time and run-time checks
  • Full Object Oriented Programming support
  • Concurrent programming features, including support for multicore
  • Generic templates
  • Encapsulation
  • Hierarchical program composition / programming-in-the-large

Ada also offers specialized support for systems programming and real-time systems. And the most recent version of the language includes contract-based programming (pre- and postconditions), which in effect makes functional requirements part of the source code where they can be verified by dynamic checks or static analysis.

Beyond the benefits from its specific features, there are other reasons to move up to Ada:

  • Wide range of target processors supported
  • Rich and mature development environments and toolsets
  • Smooth integration into existing projects and ease of interoperating with C and C++
  • Ease of learning
  • Successful track record in the most challenging industries, including domains where safety or security certification is required
  • International standardization (ISO) with controlled maintenance of the Ada standard


Read the study by VDC research about Ada's impact on controlling costs »

Ada Comparison Chart

The following chart provides an overview of evolution of the major features of the Ada programming language.

Programming Structure, ModularityAda 83Ada 95Ada 2005Ada 2012
Packagescheckcheckcheckcheck
Child unitscheckcheckcheck
Limited with clauses and mutually dependent specscheckcheck
Generic unitscheckcheckcheckcheck
Formal packagescheckcheckcheck
Partial parametrizationcheckcheck
Conditional expressions, Case expressionscheck
Quantified expressionscheck
In-out parameters for functionscheck
Iteratorscheck
Expression functionscheck
Object-Oriented ProgrammingAda 83Ada 95Ada 2005Ada 2012
Derived typescheckcheckcheckcheck
Tagged typescheckcheckcheck
Multiple inheritance of interfacescheckcheck
Named access typescheckcheckcheckcheck
Access parameters, Access to subprogramscheckcheckcheck
Enhanced anonymous access typescheckcheck
Aggregatescheckcheckcheckcheck
Extension aggregatescheckcheckcheck
Aggregates of limited typecheckcheck
Unchecked deallocationcheckcheckcheckcheck
Controlled types, Accessibility rulescheckcheckcheck
Accessibility rules for anonymous typescheckcheck
Preconditions and postconditionscheck
Type invariantscheck
Subtype predicatescheck
ConcurrencyAda 83Ada 95Ada 2005Ada 2012
Taskscheckcheckcheckcheck
Protected types, Distributed Systems Annexcheckcheckcheck
Synchronized interfacescheckcheck
Delays, Timed callscheckcheckcheckcheck
Real-Time Systems Annexcheckcheckcheck
Ravenscar profile, Scheduling policiescheckcheck
Multiprocessor affinity, barrierscheck
Requeue on synchronized interfacescheck
Ravenscar for multiprocessor systemscheck
Scientific ComputingAda 83Ada 95Ada 2005Ada 2012
Numeric typescheckcheckcheckcheck
Complex typescheckcheckcheck
Vector/matrix librariescheckcheck
Standard LibrariesAda 83Ada 95Ada 2005Ada 2012
Input/outputcheckcheckcheckcheck
Elementary functionscheckcheckcheck
Containerscheckcheck
Bounded Containers, holder containers, multiway treescheck
Task-safe queuescheck
Character SupportAda 83Ada 95Ada 2005Ada 2012
7-bit ASCIIcheckcheckcheckcheck
8/16 bitcheckcheckcheck
8/16/32 bit (full unicode)checkcheck
String Encoding packagecheck

History of Ada

Ada was originally developed in the early 1980s (this version is generally known as Ada 83) by a team led by Dr. Jean Ichbiah at CII-Honeywell-Bull in France. The language was revised and enhanced in an upward compatible fashion in the early 1990s, under the leadership of Mr. Tucker Taft from Intermetrics in the U.S. The resulting language, Ada 95, was the first internationally standardized (ISO) Object-Oriented Language. Under the auspices of ISO, a further (minor) revision known as Ada 2005 was completed as an amendment to the standard. The most recent version of the language standard is Ada 2012, which has introduced full support for contract-based programming (including subprogram pre- and postconditions) among other features.

The name “Ada” is not an acronym; it was chosen in honor of Augusta Ada Lovelace (1815-1852), a mathematician who is sometimes regarded as the world’s first programmer because of her work with Charles Babbage. She was also the daughter of the poet Lord Byron.

Ada in the Community

Ada on Stack Overflow

Stack Overflow is a place to ask questions and get responses from other techies. We highly recommend this resource.

Ada on Reddit

An active community of Ada users on Reddit serve as a valuable resource for anyone interested in Ada.

AdaCore on GitHub

With our commitment to Open Source, AdaCore is a major contributor to GitHub.

@AdaProgrammers

Launched during the Make with Ada competition, the @AdaProgrammers account keeps up an active presence on twitter.

Ada on LinkedIn

With LinkedIn you can connect with Ada developers and employers from around the world.