<
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.
{
Ada/">Home of the Brave Ada Programmers
(http://lglwww.epfl.ch/Ada/)}. {
Ada/FAQ/">Ada FAQs
(http://lglwww.epfl.ch/Ada/FAQ/)} (hypertext), {
Ada/FAQ">text only
(ftp://lglftp.epfl.ch/pub/Ada/FAQ)}.
ada/">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 (ftp://primost.cs.wisc.edu/) 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
(ftp://wsmr-simtel20.army.mil/PD2:<ADA.EXTERNAL-TOOLS>GRAM2.SRC)}.
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]
(2000-08-12)