Ada

(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), text only.

http://wuarchive.wustl.edu/languages/ada/, ftp://ajpo.sei.cmu.edu/, ftp://stars.rosslyn.unisys.com/pub/ACE_8.0.

E-mail: <adainfo@ajpo.sei.cmu.edu>.

Usenet newsgroup: news:comp.lang.ada.

An Ada grammar including a lex scanner and yacc parser is available. E-mail: <masticol@dumas.rutgers.edu>.

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 Software Repository.

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 1987.

[Jargon File]