<language> (After Ada Lovelace) A Pascal-descended language, designed by
Jean Ichbiah's team at CII Honeywell in 1979, made mandatory for Department of
Defense software projects by the Pentagon. The original language was
standardised as "Ada 83", the latest is "Ada 95".
Ada is a large, complex, block-structured language aimed primarily at embedded
applications. It has facilities for real-time response, concurrency, hardware
access and reliable run-time error handling. In support of large-scale software
engineering, it emphasises strong typing, data abstraction and encapsulation.
The type system uses name equivalence and includes both subtypes and derived
types. Both fixed and floating-point numerical types are supported.
Control flow is fully bracketed: if-then-elsif-end if, case-is-when-end case,
loop-exit-end loop, goto. Subprogram parameters are in, out, or inout. Variables
imported from other packages may be hidden or directly visible. Operators may be
overloaded and so may enumeration literals. There are user-defined exceptions
and exception handlers.
An Ada program consists of a set of packages encapsulating data objects and
their related operations. A package has a separately compilable body and
interface. Ada permits generic packages and subroutines, possibly parametrised.
Ada support single inheritance, using "tagged types" which are types that can be
extended via inheritance.
Ada programming places a heavy emphasis on multitasking. Tasks are synchronised
by the rendezvous, in which a task waits for one of its subroutines to be
executed by another. The conditional entry makes it possible for a task to test
whether an entry is ready. The selective wait waits for either of two entries or
waits for a limited time.
Ada is often criticised, especially for its size and complexity, and this is
attributed to its having been designed by committee. In fact, both Ada 83 and
Ada 95 were designed by small design teams to be internally consistent and
tightly integrated. By contrast, two possible competitors, Fortran 90 and C++
have both become products designed by large and disparate volunteer committees.
See also Ada/Ed, Toy/Ada.
Home of the Brave Ada Programmers. Ada FAQs (hypertext),
Usenet newsgroup: comp.lang.ada.
An Ada grammar including a lex scanner and yacc parser is available.
Another yacc grammar and parser for Ada by Herman Fischer.
An LR parser and pretty-printer for Ada from NASA is available from the Ada
Adamakegen generates makefiles for Ada programs.
["Reference Manual for the Ada Programming Language", ANSI/MIL STD 1815A, US DoD
(Jan 1983)]. Earlier draft versions appeared in July 1980 and July 1982. ISO
Actus « AD « ad « Ada » Ada++ » Ada 83 » Ada