Modern society is becoming very dependent upon software. Our
transport systems, financial systems, medical systems and defense systems all
depend to a very large degree upon software. As a consequence the safety of
many human lives and much property now depends upon the reliable functioning of
software. Moreover, the fall in the cost of hardware has now made possible the
development of large software systems.

Ada is a programming language of special value in the development of large
programs which must work reliably. This applies to most defense applications
(from which background Ada evolved) and extends to many application domains.
Indeed over half the Ada programs now being developed are for non-defense
applications.

This document introduces Ada 95, the revised International Standard which
increases the flexibility of Ada thus making it applicable to wider domains but
retains the inherent reliability for which Ada is noted. Important aspects of
Ada 95 include

Object Oriented Programming.
Ada 95 includes full OOP facilities giving the
flexibility of programming by extension which enables programs to be extended
and maintained at lower cost.

Hierarchical Libraries.
The library mechanism now takes a hierarchical form
which is valuable for the control and decomposition of large programs.

Protected Objects.
The tasking features of Ada are enhanced to incorporate a
very efficient mechanism for multitask synchronized access to shared data.
This is of special value for hard realtime systems.

These enhancements to Ada make Ada 95 an outstanding language. It adds the
flexibility of languages such as C++ to the reliable Software Engineering
framework provided and proven by Ada 83 over the past ten years.

Ada 95 is a natural evolution of Ada 83. The enhancements have been made
without disturbing the existing investment in Ada 83 programs and programmers.
Upward compatibility has been a prime goal and has been achieved within the
constraints imposed by other requirements.

This document contains four chapters. Chapter 1 gives the background to the
development process including the capture of the requirements from the existing
and future user community. Chapter 2 introduces the highlights of the
language, especially the three topics mentioned above, Objected Oriented
Programming, Hierarchical Libraries and Protected Objects; it is in a tutorial
style. Chapter 3 gives an overview of the whole language showing how the new
facilities fit into the overall framework. Finally, Chapter 4 addresses the
issue of upward compatibility with Ada 83 and shows that for normal programs
the goal of compatibility has been achieved. This document will be of special
value to program managers, team leaders and all software professionals with
concern for the organized development of software.

Ada 95 deserves the attention of all members of the computing profession. It
is a coherent and reliable foundation vehicle for developing the major
applications of the next decade.