Ada 83
In 1974, a group from each of the
services independently proposed the adoption of a common language. The
Army began a study called Implementation Language for Real Time Systems;
the Navy called theirs the CS4 Program, while the Air Force effort was
named the High Order Language Standardization Study.
After reviewing these individual efforts to reinvent the wheel, Lt. Col.
Bill Whitaker, then with the Department of Defense for Research and
Engineering, felt that a joint-service effort made the most sense. As a
result, Malcom Currie, who was director of the Department of Defense for
Research and Engineering, directed that a joint-service program be
implemented in January 1975.
He also instructed that no further funds be expended implementing new
programming languages in major defense systems until the problem of
software commonality had been resolved.
George Heilmeier left OUSDRE at that time the head up the Advanced Research
Project Administration (now DARPA), and Lt. Col. Bill Whitaker (USAF) went
with him. A high-order language working group (HOLWG) was formed with
Whitaker as chairman.
Other representatives included Cmdr. Jack Cooper, the Navy representative
(along with Bernie Zempolich and Robert Kahane), Bill Carlson of ARPA, Maj.
Tom Jarrell of the Air Force, Paul Cohen of the Defense Communications
Agency (DCA), Lt. Col. Schamber of the Marine Corps, and Maj. Breault of
the Army.
Each representative had another full-time job, and the working group met
once a month. Their charter was to investigate establishing a minimal
number of common high-order computer programming languages for use in the
development, acquisition, and support of computer resources embedded within
defense systems.
In particular, it was to define the technical requirements for a common
language, compare them with existing languages, recommend adoption or
implementation of the necessary languages, and monitor and assist those
efforts.
Thus, the working group coordinated all the activities of the common
language effort, but it did not participate directly in the design or
implementation of any programming language or associated software.
By the spring of 1975, the working group had begun determining the
characteristics of a general-purpose programming language suitable for
embedded computer applications.
The characteristics were to be given in the form of requirements that would
act as constraints on the acceptability of a language but would not dictate
specific language features. The requirements were not a language
specification, but instead they attempted to define rigorously the needed
characteristics in a form that could be critically reviewed.
The next step was establishing a first iteration call a "Strawman." This
was quite informal since there was no real funding at that point. The
Strawman requirements were typed, copied, and distributed. Several widely
accepted, general goals were listed including efficiency, reliability,
readability, simplicity, and implementability.
None of these features was quantifiable; however, it was decided that no
specific language features would be adopted at that time since those types
of requirements would impose strong constraints on the form without
necessarily increasing the effectiveness of the languages. Just prior to
Strawman, ARPA's Bob Fox hired Dave Fisher. Just as Bill Whitaker was the
driving political force, Dave Fisher became the technical force behind the
Strawman.
Bill Carlson orchestrated the business side, and in a series of
entrepreneurial maneuvers, Bill Whitaker cajoled, jaw-boned, and produced
political support from the DDR&E, followed by funding, which came first in
1976 from the Navy. Then, like a skilled oral surgeon extracting an
impacted wisdom tooth, he extracted several million dollars from each of
the services.
One of the sad commentaries of our time is that the people who drive joint
programs are never appreciated in their own service; typically, they are
perceived to be boat rockers. Col. Whitaker admits that he was never the
most popular fellow in the Air Force.
Fortunately there are still men like him who are willing to sacrifice their
career for the nation's good. The contribution of Lt. Col. Whitaker's
group to our DOD will be measured in billions of dollars saved and
order-of-magnitude increases in productivity.
The next step was called the Woodenman. The reviews of the Strawman
requirements were formed into a complete, yet tentative, set of
requirements. Also contained were descriptions of the general, or
nonquantifiable, desired characteristics. The Woodenman also contained
many other welcome characteristics whose feasibility, practically, and
mutual compatibility had not been tested.
The Woodenman was widely distributed, not only within the military, but
also to other government agencies, the computer science research community,
and industry. Altogether, more than 100 expert review teams in fifteen
nations were solicited for comments.
Based on the reviews of the Woodenman requirements, the next iteration,
named "Tinman," was derived. The Tinman removed the requirements for which
there was no sound rationale, restricted unnecessarily general
requirements, and modified others to be practical within existing
technology.
In January 1976, each of the requirements in Tinman was officially approved
for all the military departments by the assistant secretary of defense for
research and development. The document was then circulated for comment,
and in October of that year a workshop was held at Cornell University to
discuss the technical issues raised by the requirements and to investigate
their feasibility.
Concurrent with the development of Tinman, twenty-three programming
languages were evaluated against the developing requirements. Sixteen
companies and organizations performed these evaluations, and most of the
languages received at least two evaluations.
It was found, however, that no language satisfied the requirements well
enough that it could be adopted as a common language. Several of the
languages were sufficiently compatible with the technical requirements so
that they could be modified to produce an acceptable language.
All of the languages in this group are derivatives of Algol-68, Pascal, or
PL/1. Without exception, the evaluators found all the interim-approved
languages to be inappropriate as a basis for developing a common language.
The consensus held, however, that it was possible to produce a single
high-order language that would meet essentially all the Tinman
requirements.
In January 1977, an Ironman version of the requirements was issued. These
requirements were substantially the same as those of Tinman, but they were
modified for feasibility and clarity and were presented in an entirely
different format.
Tinman was discursive and organized around general areas of discussion.
Ironman, on the other hand, was very brief and organized like a language
description or manual. It was essentially a specification with which to
initiate the design of a language.
Early in 1977, with Ironman complete, the DOD held a design competition,
and most of the fifteen proposals received, including the four best, were
based on Pascal. These four, Cii-Honeywell Bull, Intermetrics, SofTech,
and SRI International, began parallel design efforts in August 1977, and
each of the teams was coded with a color to preserve anonymity during the
source selection.
In 1978 the four designs were evaluated by 125 design review teams from
around the world. In addition, the contractors were required to defend
their designs in intensive oral examinations. Two of the four initial
contractors were chosen to proceed further, and the requirements were
further refined to "Steelman".
After more than 900 expert review teams participated in a process that was
held virtually in a fishbowl for continual public and scientific scrutiny,
a winning language was selected.
The design competition's eventual winner was the Green team (Cii-Honeywell
Bull), led by the Frenchman Jean Ichbiah. He had been responsible for the
design of the computer language LIS in 1972, as well as its later revision.
As a result of his role in developing Ada, Dr. Ichbiah was awarded the
Certificate of Distinguished Service by the DOD and the Legion of Honor by
the President of France.
The language's name, Ada, was chosen and named for the mathematician Lady
Augusta Ada Byron (1815-1852), Countess of Lovelace and daughter of the
poet Lord Byron. She worked with Charles Babbage, who had created a
"difference engine" that could be "programmed" much like the Jacquard loom.
Since Ada often "programmed" the difference engine, she is considered by
many to be the first programmer. The military standard specification
MIL-STD-1815 was chosen to reflect the year of her birth.
In the meantime, HOLWG was in a transitional state. Dave Fisher became
chairman in the summer of 1979; Maj. Ben Blood became the Army
representative; and Lt. Col. Larry Druffel (USAF) also joined the group.
He began looking at the programming environment and started the Stoneman
project.
Environments can be categorized as either closed or open-ended, and the
distinction is fundamental. In a closed environment, the user is a fixed
set of tools that are presumably sufficient to meet all basic requirements.
A closed environment cannot be altered or extended, short of re-issuing the
environment by the suppliers. The tool set in an open-ended environment,
on the other hand, can be modified or extended at any time.
Lt. Col. Druffel decided that Stoneman would represent a firm commitment to
an open-ended environment since this commitment is important at the
individual user, project, and overall environment levels.
In an open-ended environment, individual users can develop tools that
support their own style of working. The user may find that many tasks can
be accomplished efficiently by an indirect programming approach, which
involves the development of application specific tools.
A project can benefit from tools such as application environment simulators
or preprocessors that check adherence to project coding standards. The
overall environment's complete tool set can be upgraded to reflect
developments in technology and to some degree this can protect the
environment against obsolescence.
A more significant issue concerning open-ended environments is the complete
and accurate recording of relationships among data base objects, even when
these objects are created by user supplied tools.
Without such recording, an open-ended environment would be a liability
rather than a benefit since it would no longer be possible to provide
complete and accurate information throughout the life cycle.
In December 1980, the HOLWG became the Ada Joint Program Office (AJPO),
with Lt. Col. Druffel as its interim manager. ARPA turned Druffel loose
six months later, and he officially became manager of the AJPO.
Paul Cohen served as technical director, and Mark Grove, now with TRW in
San Diego, led the steering committee. Other key players during those
early years were George Heilmeier (as director of ARPA), Len Weissberg
(later instrumental in the VHSIC program), and Bob Fossum (as director of
DARPA).
At a convention in Boston during the summer of 1980, Bill Carlson, who was
the keynote speaker, and Dave Fisher, who gave the wrap-up speech, both
announced that they were leaving ARPA and joining Western Digital.
In 1978, as Dr. Ichbiah's team began developing the Ada language in France,
an Ada project began across the sea at New York University as a small-scale
study of optimization issues relating to Ada.
It became clear at once that Ada was, at the time, very loosely defined and
that a more rigorous definition of the language was needed if a meaningful
study of compilation issues was to be undertaken.
This led to the first executable semantic model of Ada, consisting of about
2000 lines of SETL, which is a very high-level language developed at NYU.
Its basic constructs are those of the theory of sets. It is an imperative,
sequential language with assignment, weak typing, dynamic storage
allocation, and the usual atomic types, numeric types, booleans, strings,
and generated atoms (Gensyms).
Thus, it is relative of LISP, Snowbol, and APL. This model described the
executable aspects of the language in the form of an interpreter for an ad
hoc intermediate representation dubbed AIS (Ada Intermediate Source).
In the following two months, an LALR (Look Ahead from Left to Right) parser
was added that generated AIS for correct Ada programs only. In the course
of the following six months, static semantic checks were progressively
added so that when the 1980 definition of Ada was released, Ada/Ed was a
working model of most of its static dynamic semantics.
Several features that clearly could not be implemented in their preliminary
Ada description (e.g., discriminants and subprogram derivation) were
purposefully left out and were added when the 1980 standard appeared.
On the other hand, the semantics of tasking, including rendezvous, task
activation, and abort and select statements, were faithfully described from
the beginning. At that point it became clear the Ada/Ed could serve both
as a prototype translator and as a rigorous definition of Ada, and both
goals were subsequently pursued.
The latter use is a consequence of (1) the compactness of the system
(25,000 lines of subtl, including documentation), (2) the very abstract
model chosen to represent the run-time environment, and (3) the
demonstrable agreement between Ada/Ed and the Ada Compiler Validation
Capability (ACVC) tests, which constitute an additional de facto definition
of the language.
Within six months, Ada/Ed was adapted to reflect the 1982 reference manual,
and in early 1983 it was further modified to reflect in the final changes
that led to the ANSI (American National Standards Institute) standard
document.
Ada/Ed was validated by the AJPO in April 1983. Only 100 man-months were
expended from the inception of the 1979 NYU Ada project to the validation
of the 1983 ANSI Ada/Ed
(AdaIC Flyer H031-0291c)
Ada 95
Ada 95 was designed and developed from an international process of
unprecedented scale for a programming language. A Board of Distinguished
Reviewers -- representing six different countries and comprised of
twenty-eight world renowned leaders in academia and industry -- provided
oversight and evaluation of the immense input from the international community
of users. Over 750 recommendations were received by individuals who were
invited to submit Revision Requests -- many from the world's leading
companies. Conferences, workshops, small group meetings and one-on-one
consultations were held with other segments of the Ada community, and advice
was received from some of the world's finest software engineers and government
technology leaders. The entire revision process required over four years to
complete.
The revision retains the inherent integrity and efficiency of the original
version of Ada, called Ada 83, as the first advanced building-block language
to assemble a host of important features while adhering to the demands of
modern software engineering practice. In addition to OOP support, the new Ada
provides more efficient real-time programming facilities while remaining fully
portable, and addresses vital concerns for business such as the effective
integration of legacy systems and upward compatibility.
New features include international character sets, improved generics (similar
to C templates), and a set of changes that will reduce the time needed to
recompile large systems. Ada 95 remains a strongly typed language, with full
support for encapsulation and information hiding. Increased functionality
allows for support of smaller, more dynamic systems; unnecessary assumptions
have been eliminated, existing features are generalized and special cases or
restrictions have been removed.
The revision is an update of the 1987 ISO release and the equivalent 1983
American National Standards Institute (ANSI) Ada standard. Drafts of the
revised standard were formally considered by the ISO between September, 1993
and October, 1994; ballots were cast over a period of 15 months by the 22
member countries, and officially tallied on November 1, 1994. ISO delegates
accepted the revision by a vote of 18 yes, 0 no.
(ARA press release Feb 15, 1995)
|