Ada 95 Rationale: The Language, The Standard Libraries


ISBN : 3540631437

Order a printed copy of this book from Amazon.

Cover Design - Ada 95 Rationale: The Language, The Standard Libraries

For your free electronic copy of this book please verify the numbers below. 

(We need to do this to make sure you're a person and not a malicious script)



Sample Chapter From Ada 95 Rationale: The Language, The Standard Libraries
     Copyright © Intermetrics, Inc.

I Evolution of Ada 95

Ada is a modern programming language suitable for those application areas which benefit from the
discipline of organized development, that is, Software Engineering; it is a general purpose
language with special applicability to real-time and embedded systems. Ada was originally
developed by an international design team in response to requirements issued by the United States
Department of Defense [DoD 78].

Ada 95 is a revised version of Ada updating the 1983 ANSI Ada standard [ANSI 83] and the
equivalent 1987 ISO standard [ISO 87] in accordance with ANSI and ISO procedures. (ANSI is
the American National Standards Institute and ISO is the International Standards Organization.)
This present document describes the overall Rationale for the revision and includes tutorial
information for the new features.

I.1 The Revision Process

Although Ada was originally designed to provide a single flexible yet portable language for realtime
embedded systems to meet the needs of the US DoD, its domain of application has expanded
to include many other areas, such as large-scale information systems, distributed systems,
scientific computation, and systems programming. Furthermore, its user base has expanded to
include all major defense agencies of the Western world, the whole of the aerospace community
and increasingly many areas in civil and private sectors such as telecommunications, process
control and monitoring systems. Indeed, the expansion in the civil sector is such that civil
applications now generate the dominant revenues of many vendors.

After some years of use and many implementations, a decision was made in 1988 to
undertake a revision to Ada, leading to an updated ANSI/ISO standard. It is normal practice to
automatically reconsider such standards every 5 or 10 years and to determine whether they should
be abandoned, reaffirmed as they are, or updated. In the case of Ada, an update was deemed
To understand the process it should be explained that ANSI, as the US national standards
body, originally proposed that Ada become an ISO standard. It is normal practice that ANSI, as
the originating body, should sponsor a revised standard as necessary. The US DoD acted as the
agent of ANSI in managing the development of the revised standard. Within the US DoD, the Ada
Joint Program Office (AJPO) is responsible for Ada and the Ada Board is a federal advisory
committee which advises the AJPO.

The revision effort began in January 1988 when the Ada Board was asked to prepare a
recommendation to the AJPO on the most appropriate standardization process to use in developing
a revised Ada standard, known in the interim as Ada 9X. The recommendation [DoD 88] was
delivered in September 1988 to Virginia Castor, the then Director of the Ada Joint Program Office,
who subsequently established the Ada 9X Project for conducting the revision of the Ada Standard.
Christine M Anderson was appointed Project Manager in October 1988. Close consultation with
ISO was important to ensure that the needs of the whole world-wide Ada community (and not just
the defense community) were taken into account and to ensure the timely adoption by ISO of the
new standard. Accordingly a Memorandum of Understanding was established between the US
DoD and ISO [ISO 90].

The Ada 9X program consists of three main phases: the determination of the Requirements
for the revised language; the actual Development of the definition of the revised language; and the
Transition into use from Ada 83 to Ada 9X.

The output of the Requirements Definition phase was the Ada 9X Requirements document
[DoD 90], which specified the revision needs which had to be addressed. The Mapping/Revision
phase defined the changes to the standard to meet those requirements; it achieved this in practice of
course by defining the new standard.

The scope of the changes was guided by the overall objective of the Ada 9X effort [DoD 89a]:
Revise ANSI/MIL-STD-1815A-1983 to reflect current essential requirements with
minimum negative impact and maximum positive impact to the Ada community.
It is probably fair to observe that the changes which were deemed necessary are somewhat
greater than might have been foreseen when the project first started in 1988. However, technology
and man's understanding do not stand still and the changes now incorporated are very appropriate
to the foreseen needs of a modern language for Software Engineering into the 21st Century.

I.2 The Requirements

The development of the requirements was a somewhat iterative process with a number of subphases.
First, the community of users was invited to submit Revision Requests, secondly, these
were sorted and analyzed in order to determine what was really implied by the requests, and
finally, a coherent set of requirements was written.

Establishing the level of the requirements needed care. Quite naturally an individual user
would often perceive a need in a manner which reflected a symptom of an underlying problem
rather than the problem itself. It was very important that the requirements reflected the essence of
the problem rather than what might in effect be simply one user's suggested solution to a part of a
problem. One reason for this concern was to ensure that better, perhaps deeper and simpler,
changes were not excluded by shallow requirements.

In some cases a complete understanding of a requirement could not be established and this led
to the introduction of Study Topics. As its name implies a Study Topic described an area where
something ought to be done but for some reason the feasibility of a solution was in doubt; perhaps
the needs were changing rapidly or there were conflicting needs or implementing technology was
unstable or it was simply that we had an incomplete understanding of some basic principles.
The general goal of the revision was thus to satisfy all of the Requirements and to satisfy as
many and as much of the Study Topics as possible. Any unsatisfied Study Topics would be set
aside for further consideration for a future Ada 0X (that is the next revision due perhaps around

The requirements document described 41 Requirements and 22 Study Topics. These were
divided into a number of chapters which themselves form two broad groups. The first group
covered topics of widespread applicability, whereas the second group addressed more specialized

The first group consisted of the need to support International Character Sets (originally
identified by several nations in the 1987 ISO standardization process), support for Programming
Paradigms (Object Orientation was included in this category), Real-Time requirements,
requirements for System Programming (such as Unsigned Integers), and General requirements.
This last topic included specific matters such as error detection and general considerations of
efficiency, simplicity and consistency; examples of a number of individually minor but irritating
aspects of Ada 83 which fall into this category were given in an appendix.
The second, specialized, group consisted of requirements for Parallel Processing, Distributed
Processing, Safety-Critical Applications, Information Systems, and Scientific and Mathematical