Flyer H031-0996 history.txt The History of Ada Based on an article by Robert daCosta, which first appeared in the March 1984 issue of Defense Science magazine and is 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. ********************** The views, opinions, and findings contained in this report are those of the author(s) and should not be construed as an official Agency position, policy, or decision, unless so designated by other official documentation. Copyright 1996. IIT Research Institute. All rights assigned to the U.S. Government (Ada Joint Program Office). Permission to reprint this flyer, in whole or in part, is granted, provided the AdaIC is acknowledged as the source. ********************** Ada Information Clearinghouse (AdaIC) P.O. Box 1866 Falls Church, VA 22041 Telephone: 1-800-AdaIC-11 (1-800/232-4211) or 703/681-2466 Fax: 703/681-2869 E-mail: adainfo@sw-eng.falls-church.va.us The AdaIC is sponsored by the Ada Joint Program Office and operated by IIT Research Institute.