Based on an article by Robert daCosta in the Defense Science magazine (March 1984). Reprinted with permission.
The Goal: A Common High-Order Language
It has been twenty years since the first efforts to achieve a common
high-order language were proposed. 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 Strawman
The next step was establishing a first iteration called 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 Woodenman and the Tinman
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.
The Ironman
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. The four top designs, from Cii-Honeywell Bull,
Intermetrics, SofTech, and SRI International, began parallel design
efforts in August 1977; each of the teams was coded with a color to
preserve anonymity during the source selection.
The Steelman
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 Jean
Ichbiah of France. 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 Ada Programming Language
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.
|