[Ada Information Clearinghouse]
Ada '83 Rationale: About This Document

"Rationale for the Design of the
Ada® Programming Language"

[Ada '83 Rationale, HTML Version]

Copyright ©1986 owned by the United States Government. All rights reserved.
Direct inquiries to the Ada Information Clearinghouse at adainfo@sw-eng.falls-church.va.us.

About This Document...

On this page...

About this HTML version
Note that accompanied the ASCII version
Errata (accompanied the ASCII version)


"Copyright ©1986 owned by the United States Government as represented by the Under Secretary of Defense, Research and Engineering. All rights reserved. Permission to publish must be obtained from the Ada Joint Program Office, OUSDRE(R&AT), The Pentagon, Washington, D.C. 20301, U.S.A."

Direct inquiries to the Ada Information Clearinghouse at adainfo@sw-eng.falls-church.va.us.

About This HTML Version


This HTML document was derived from an ASCII version using both automatic and manual formatting. The ASCII-format original was initially converted to HTML using the program HTML Markup 1.1 by Scott J. Kleper (http://htc.rit.edu/klephacks/markup.html). This was done primarily to preserve basic paragraph formatting and to convert special characters to sequences compatible with HTML. Microsoft Word, augmented by QuicKeys macros, was used for the final conversion and cross-linking.

Errors in Original

The ASCII version from which this HTML was derived was apparently an export from a previous hypertext version in Microsoft Help format. The original hypertext could not be found.

During conversion a number of errors involving one or two characters were found in the parent ASCII version. The nature of some of these errors suggested that the parent ASCII version had been subjected to a computer-to-computer transfer without the benefit of error checking. Other errors appear to have been introduced when the ASCII version was "wrapped" indiscriminately, in some cases affecting the syntactical correctness of examples. Every effort was made to correct these errors where the intended text was unambiguous; a very few remaining errors were marked as such so as not to mislead the reader.

Note that accompanied the ASCII version

This document, the Rational for the Design of the Ada programming language, has evolved over a number of years.

A first version appeared in 1978 as the Rationale for the Green programming language, and this was revised in 1979 at the time that Green was finally selected as Ada. The purpose of these documents was to explain the motivation for the language design, and to justify and defend its position against the other competitive languages and the Ironman (later Steelman) requirements. No corresponding document was written in 1980 when Ada was proposed as a standard, nor in january when Ada finally became both an ANSI and Military Standard. The present version completes and revises a draft issued in January 1984 and which was the subject of public review.

[Original list of files:]

File            Size
RATL-C4.HLP     43159
RATL-NX2.HLP     1317
RATL-CVR.HLP      672
RATL-NX1.HLP     1366
RATL-C1.HLP      2899
RATL-BIB.HLP     6874
RATL-TOC.HLP     5097
RATL-C2.HLP     11792
RATL-C8.HLP     15462
RATL-C6.HLP     14757
RATL-C16.HLP    17161
RATL-C3.HLP     17968
RATL-C10.HLP    18477
RATL-C11.HLP    21332
RATL-C7.HLP     19977
RATL-C15.HLP    21610
RATL-C9.HLP     21048
RATL-C14.HLP    20921
RATL-C5.HLP     27752
RATL-C12.HLP    27863
RATL-C13.HLP    39371
ERRATA.HLP       6227

Errata [accompanied the ASCII version]

The United States Department of Defense has included this errata sheet to clarify certain aspects and improve the accuracy of The Rationale for the Design of the Ada Programming Language as it was delivered to the Ada Joint Program Office by the authors. No copyright is claimed in the clarification of the basic document.

Page                  For                           Read
  1, line 3           Ada programming language,     Ada Programming Language

57, line 14 (8,1,1,1,1) (1,1,8,1,1)

65, line 26 requires require

89, line 7 one negative one extra negative

97, line 35 above the decimal before the decimal

97, line 36 below the decimal after the decimal

126, lines 12 to 14 :=0; :=0.0;

176, lines 37 to 38 division declared in the construction declared visible part with two in the visible part parameters of type with two parameters, INTEGER. Hence the integer one of type INTEGER literals 3 and 31 are and one of type implicitly converted to POSITIVE. Hence the this type and the division integer literals 3 and is applied 31 are implicitly converted to the respective type and the construction is applied.

195, line 31 program procedure

218, line 22 to 23 named common "named COMMON"

220, line 1 following example: following example: procedure DEMO is

220, line 27 end P; end P; begin ... end DEMO.

221, line 26 variable in object that contains

226, line 20 two integers one integer and one positive number,


248, line 28 (E); E;

250, line 12 limited private limited private;

250, line 19 BOOLEAN BOOLEAN;

252, line 17 -- default maximum length -- default maximum length -- where the type REAL is any -- properly declared real type

265, line 28 X, X

318, line 9 SINGULAR: exception; SINGULAR: exception; ... --declaration of procedures READ and PRINT used below ...

320, line 20 function DIVISION (A, B: function DIVISION (A, B: REAL) return REAL is REAL) return REAL is --the type REAL is any --properly declared real type

323, line 1 procedure APPLICATION is with TABLE_MANAGER; procedure APPLICATION is

328, line 19 SOME_ITEM THING

328, line 21 out ITEM in out ITEM

330, lines 27 to 28 when NAME_ERROR=> null; when NAME_ERROR => null; end; end;

333, add at top -- Assume that all that follows in the same -- declarative region of some enclosing procedure

354, line 5 this wretched data type this data type

358, line 3 and 28 set system mask set system mask

360, lines 12 to 15 generic generic type SOURCE is limited type SOURCE is limited private; private; type TARGET is limited type TARGET is limited private; private; function function

360, line 15 TARGET; A program TARGET; A program


370, line 11 limited; this limited. This

371. insert after line 18 The procedure SET_INDEX sets the current index of the given index value, which may exceed the current size of the file. If the given index value exceeds the current size of the file, item-sized "gaps" will occur which are undefined items.

371, lines 19 to 20 index value and SET_INDEX index value. The function enables it to be set. The SIZE gives the number of function SIZE gives the items in the file, which number of items in the file includes both defined and (defined or undefined). undefined items.

376 line 26 We have we have:

Address any questions or comments to adainfo@sw-eng.falls-church.va.us.