From: carlsons@ajpo.sei.cmu.edu (Susan Carlson)
Subject: Ada 9X Report to the Public -- 9/92
Organization: Ada Information Clearinghouse
Date: Tue, 29 Sep 1992 16:25:40 GMT



                          Ada 9X Report to the Public
                                September 1992

Ada 83/Ada 9X Compatibility

The Ada 9X Mapping Specification is rapidly approaching completion.  Many
users are asking questions about the effort involved in transitioning their
Ada 83 code into Ada 9X environments, in view of potentional upward
incompatibilities.  Avoiding such incompatibilities has been a central
design goal for Ada 9X.  However, in some cases, they are a necessary
consequence of correcting some problems with Ada 83 or of extending the
language.  Still, their number is presently very small and may be reduced
further.

Recently, a set of twelve coding guidelines for Ada 83 programmers has been
developed.  It ensures that Ada 83 code will not encounter the few
presently existing incompatibilities, once this code gets transitioned into
Ada 9X environments.  These guidelines will be published in a paper by Dr.
Erhard Ploedereder, Chairman of the Ada 9X Distinguished Reviewers, in the
Nov/Dec issue of ACM SIGAda's Ada Letters; they are currently available on
the Ada 9X electronic bulletin board by calling 1-800-Ada9X25.

The guidelines are straightforward, can be applied today, and do not
constrain the expressive power of Ada 83.  Some of them can be regarded as
good style guidelines irrespective of Ada 9X.  Even if the Ada 9X Teams
succeed in eliminating more of the remaining incompatibilities, the quality
and readability of the Ada 83 code will not be affected by having observed
these, then unnecessary, guidelines.  Organizations concerned about a
smooth transition to Ada 9X should take advantage of this information.

Ada 9X and Object-Oriented Programming (OOP)

OOP has become the buzzword of the decade.  Behind the obvious enthusiasm
lies the correct perception that OOP simplifies the design and construction
of software systems.  The basic reason is ease of reuse -- stemming from
the condensation of inheritance, specializations by extensions, and dynamic
dispatching.  The gain is in the amount of code that one does not have to
write, simply because one can obtain it by inheritance from a previously
defined software component.

Ada 9X implements OOP by a straightforward extension of the notion of
derived type.  Objects are no different from Ada 83: they are entities that
can have values of a certain type.  The message-passing concept can still
be realized by means of tasks, but the more conventional concept of class
is the Ada 9X type extension:

type new_and_improved is new tried_and_true with record
      this: bell;
      that: whistle;
end record

procedure ring(thing: new_and_improved is ...

The type new_and_improved inherits the primitive operations from the parent
type tried_and_true.  Those operations act on the components that are
common to both parent and child types.  In addition, the new type contains
additional components (bells and whistles), and one can define new
operations (or override inherited ones) that make use of the components in
the extension.

There is no special syntax to designate objects of such types, nor to
involve operations that have formals of such types.  Furthermore, if the
parent operation has several parameters (or return values) of the parent
type, then the signature of the inherited operation is obtained by
replacing every mention of the parent type with the child type.

Ada 9X supports multiple-inheritance module inclusion via multiple
"with"/"use" clauses, multiple-inheritance of implementation via private
extensions and record composition, and multiple-inheritance mix-ins via the
use of generics, formal packages, and access discriminants.

The Ada 9X mechanisms are designed to eliminate "distributed overhead", so
that there is no added expense for the general user of the language because
of the presence of the mechanisms supporting multiple-inheritance.

For more information concerning Ada 9X and OOP, suggested reading includes
a language study note by Tucker Taft, chief designer of Ada 9X at
Intermetrics, Inc., and a paper on Ada 9X and C++ by Dr. Ed Schonberg of
New York University.  Some of the discussion above came from these papers.
Complete text is available on the Ada 9X electronic bulletin board by
calling 1-800-Ada9X25.

GNU Ada 9X

The GNU Ada 9X Project is progressing on schedule with prototypes expected
to be released for SUNs and PCs by August 93.  The project is under the
direction of Professors Robert Dewar and Ed Schonberg.  The design team
collectively represents over one hundred person years of experience in Ada
implementation and compiler technology.

The objective of this activity is to provide the Ada community, in the most
timely fashion, a reasonably complete implementation, distributed with full
sources under the Free Software Foundation GNU public license.  The system
will allow implementors, educators, and software professionals to
experiment with the revised language at the earliest possible time.

The project does not include a commitment for formal validation, since
neither the approved standard nor the validation test suite will be
available in time.  If you are interested in closely tracking the progress
of this activity, send an electronic message to dewar@cs.nyu.edu.

International Coordination

Close coordination continues between the Ada 9X Project Office and the
International Standardization Organization (ISO) Working Group 9 on Ada.
Ultimately the delegations of 22 countries will have the opportunity to
approve Ada 9X.

At the last meeting in April 92, Ada 9X received unanimous approval on the
proposed baseline for the core language.  At the next ISO meeting in
November, the Ada 9X annexes will be discussed and hopefully their contents
also approved so that work can continue to progress at full speed on the
revised wording in the standard.

The draft standard is expected to begin the ANSI and ISO canvassing process
by December 1993.

As always, feel free to contact me for any Ada 9X related information.

Chris Anderson, Ada 9X Project Manager
Air Force Phillips Laboratory/VTES
Kirtland AFB, NM 87117-6008
505/846-0817; fax: 505/846-2290
e-mail: ada9x@plk.af.mil




Newsgroups: comp.lang.ada