{
AI05-0299-1}
Ada is a programming language designed to support the construction of
long-lived, highly reliable software systems. The language includes facilities
to define packages of related types, objects, and operations. The packages
may be parameterized and the types may be extended to support the construction
of libraries of reusable, adaptable software components. The operations
may be implemented as subprograms using conventional sequential control
structures, or as entries that include synchronization of concurrent
threads of control as part of their invocation. Ada supports object-oriented
programming by providing classes and interfaces, inheritance, polymorphism
of variables and methods, and generic units. The language treats modularity
in the physical sense as well, with a facility to support separate compilation.
{
AI05-0269-1}
{
AI05-0299-1}
{
AI12-0056-1}
The language provides rich support for real-time, concurrent programming,
and includes facilities for multicore and multiprocessor programming.
Errors can be signaled as exceptions and handled explicitly. The language
also covers systems programming; this requires precise control over the
representation of data and access to system-dependent properties. Finally,
a predefined environment of standard packages is provided, including
facilities for, among others, input-output, string manipulation, numeric
elementary functions, random number generation, and definition and use
of containers.