Ada definition 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
, hardware access and reliable run-time error handling. In support of large-scale software engineering
, it emphasises strong typing
, data abstraction
. 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
have both become products designed by large and disparate volunteer committees.
See also Ada/Ed
Home of the Brave Ada Programmers (http://lglwww.epfl.ch/Ada/). Ada FAQs (http://lglwww.epfl.ch/Ada/FAQ/) (hypertext), text only (ftp://lglftp.epfl.ch/pub/Ada/FAQ).
(http://wuarchive.wustl.edu/languages/ada/), (ftp://ajpo.sei.cmu.edu/), (ftp://stars.rosslyn.unisys.com/pub/ACE_8.0).
Usenet newsgroup: news:comp.lang.ada.
An Ada grammar (ftp://primost.cs.wisc.edu/) including a lex scanner and yacc parser is available. E-mail: firstname.lastname@example.org.
Another yacc grammar and parser for Ada by Herman Fischer (ftp://wsmr-simtel20.army.mil/PD2:<ada.external-tools>GRAM2.SRC)</ada.external-tools>.
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.