This International Standard specifies the form and meaning of programs
written in Ada. Its purpose is to promote the portability of Ada programs
to a variety of computing systems.
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.
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, and
generation, and definition and use of containers.
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe