Ada

A programming language. See The True Story of Ada.

Designed for the US Department of Defense to replace the multitude of languages being used for their systems/embedded development. Although Ada is a general-purpose language, care was taken in its specification that it fulfilled the real-time embedded systems requirements of the DoD. Ada is a classical imperative language, based heavily on Pascal, with influences from PL/1, C, Algol, Jovial, and others. Made an international standard in 1983 (Ada 83), and revised in 1995 (Ada 95) [ANSI/MIL-STD-1815A-1983; ISO/IEC 8652:1995].

Ada has good support for abstract data types, with some limitations. Ada 95 supports object-oriented programming, albeit in a slightly ugly (unusual) way, and with no support for multiple inheritance. Ada supports modular programming, with a 'generic' facility that rivals C++'s templates. Ada has language support for multitasking, and a standard way to support distributed programming.

Ada is a forgiving language, in that many typical programming errors are caught by the compiler or by the run-time system that would not be caught in this way by other languages. Developing programs in Ada can be relatively rapid, since many bugs can be squashed very rapidly.

The language rules are complex, partly as a result of being specified very precisely by the standard, and partly as a result of having to fully satisfy an ambitious committee's specification. However, the compiler will usually make it fairly clear what was wrong (and how to right it). Nevertheless, learning to program in Ada can be offputting to those used to simpler languages.

The language is designed to fit bureaucratic programming requirements -- reflected in the 'culture' of those who use it and teach it -- emphasising readability, fastidious correctness, and robustness against bugs and errors. It is not a slick language, and it does not have any 'sex appeal'. Ada programs tend to be very verbose. Many programmers dislike Ada from afar, but quite a few do appreciate its advantages after they have used it. Ada compilers tend to conform very closely to the standard, and porting Ada programs is generally remarkably easy.

Ada was used almost exclusively for DoD software development from 1983 until 1998, under a 'mandate' dictating its use. In 1998 the mandate was dropped, amid a radical policy shift -- as defense software costs seemed to be spiralling out of control at the time -- towards 'commercial off-the-shelf' software. This has resulted in a general trend towards the use of more popular languages in place of Ada (with a few notable exceptions).


This page is linked from: Abstraction Inversion   AdaOS   Object-Oriented   The True Story of Ada   VHDL