Ada is a programming language created by Cii Honeywell Bull and led by Jean Ichbiah for the US Department of Defense. It is similar to traditional structured programming languages and adds several object based concepts.
Ada was named after Lady Ada Lovelace.
Ada was originally targetted at embedded and real-time systems, and is still commonly used for those purposes. The Ada 95 revision improved support for systems, numerical, and financial programming.
Notable features of Ada include Strong typing, run-time checking, parallel processing, exception handling, and generics. Ada 95 added support for object-oriented programming, including dynamic dispatch.
Ada implementations do not typically use garbage collection for storage management. Ada supports a limited form of region-based storage management which allows some cases of access to unallocated memory to be detected at compile time.
In 1975 the Higher Order Language Working Group (HOLWG) was formed for the purpose of finding or creating a programming language for use in the Department of Defense. After creating the Strawman, Tinman, and Ironman (and later the Steelman) language requirements, it was concluded in 1977 that none of the popular existing languages met the specifications. Requests for proposals for a new programming language were issued and four contractors were hired to develop their proposals under the names of Green, Red, Blue, and Yellow. In May of 1979, the Green proposal was chosen and given the name Ada. The reference manual was approved on December 10, 1980 (Ada Lovelace's birthday). Ada95, the joint ISO/ANSI standard and the latest standard regarding Ada, was accepted in February 1995.
US Department of Defense required using Ada for every software project where new code was more than 30% of result. So more Ada code was written at DoD than anywhere else. Recently this requirement was removed, and only small percent of new code at DoD is written in Ada.
Ada supports run-time checks in order to protect against access to unallocated memory, buffer overflow errors, off-by-one errors, and other silly bugs; therefore, it is very widely used in critical systems like avionics, weapons and spacecraft. These checks can be disabled in the interest of efficiency. One very expensive European Space Agency Ariane 5 rocket was lost due to arithmetic overflow in an Ada program, in which the relevant check was disabled.
Versions lost in moving to proper title.
See also: Steelman language requirements