The History of Ada The following article appeared in the March 1984 issue of Defense Science magazine. Reprinted with permission. It has been ten 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 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. The Cornell Workshop. 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". Held in a Fishbowl. 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. Birth of the AJPO. 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. Two uses for Ada/Ed. 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. The ultimate proof of the usefulness of a prototype is, of course, the construction of a production system that uses the prototype as a model. The NYU Ada group is currently working on a substantially more efficient Ada translator, written in C, and using the current Ada/Ed system as design tool. While the NYU Ada project proved the feasibility of building an Ada compiler, it was several months before the Rolm Corp. made Ada compilers legitimate by announcing the validation of the first production-quality compiler. Shortly thereafter, Gensoft, a Western Digital spinoff, announced a third validated Ada compiler. At this point, however, there was still on the Rolm/Data General compiler suitable for production. The DOD has trademarked[*] the Ada name, and no one may claim to have an Ada compiler unless it has been validated by the DOD. In order to be validated, a compiler must pass a suite of some 1,850 programs -- the Ada Compiler Validation Capability (ACVC). [* In 1987, the trademark was allowed to lapse, although a compiler must still be validated in order to carry a "certification mark".] About 80 percent of these programs are applicable to all Ada compilers. A portion of the remaining programs or tests will also be required, depending on which optional features (specified in the Ada standard) the implementer has chosen. Along with the compiler, the operating system, the computer hardware itself, and any additional hardware and software that will be used to produce Ada-containing products must also be validated. Vendors will be required to revalidate their compilers each year. The DOD plans a possible revision of the ANSI standard for Ada in 1988, but not before. On the productivity side, the MOOG Co., in Buffalo, NY, reports that employees who in the past typically wrote 200 lines of code per month are now writing 1200 lines of code through the re-usability feature and modular construction of Ada. Intellimac also reports 800 to 900 percent productivity gains by their staff. Intellimac currently has more than 350,000 lines of code in commercial use. The maintainability aspects promise increased savings downstream as well. Another point of concern to program managers is in regard to program design language. There are no standards, but there are guidelines from the IEEE. Bob Mathis, AJPO chief, feels that there is no rush to produce standards for at least another six months. This is another area in which they'll be using an evolutionary process, rather than dictating the policy at the front end with the probability of repeated amendment later on. Major Kopp, of the Air Force, announced a spate of programs on which the Air Force will require the use of Ada. Col. Whitaker announced that the Air Force intends in the future to select the software first and choose the hardware second in order to utilize the portability of Ada software. Capt. David L. Boslaugh, of the Naval Materiel Command Headquarters, says that the Navy's first faltering steps with Ada will be on the Sub ACS program, beginning in May or June. This effort will use the TeleSoft compiler on the Motorola 68000 chip in the Sperry Defense Systems division ANUYK 44. The Naval Surface Warfare Laboratory claims to have developed a heuristic Ada environment that is being used in the Aegis Program. Ada for Supercomputers. One of the most significant applications for Ada is in the fifth generation of supercomputers. Intellimac and Westinghouse jointly demonstrated an IN/MP68 computer that employs a closely coupled, asynchronous parallel processing architecture which utilizers the multitasking features of Ada. To achieve the IN/MP68, Intellimac engineering modified the bound level Proms, disks, bus, and drivers of their IN/700K. Westinghouse, which is building its own Ada compiler, developed the high-level software. Intellimac modified the hardware and developed other software, including the kernel that controls the interprocessor communications and the I/O interface. The system utilizes TeleSoft's Ada compiler and Renaissance Systems Technologies operating system. the In/MP 68 consists of four MC68000-based processors, each with 256 intelligent serial interfaces and a 16-byte Winchester disk driver. Major Allan Kopp, Air Force project element monitor for Ada, was impressed. Their demonstration is particularly significant when it is thought of as an interim step while the Westinghouse team develops its VHSIC technology. TRW, the Westinghouse partner in the INEWS program, recently won an award to study the maintainability of VHSIC technology insertion in the Westinghouse ALQ131 Pod used for airborne self protection. In the meantime, it's estimated that there are approximately 3.5 million lines of Ada code in use. While at the AdaTEC conference, I met a number of young entrepreneurs like Reed Kotler, of General Transformation Corporation in Berkeley, California. They have begun building compilers for the IBM personal computer, as well as for the Intel 8086, 80186, 80286, and the 80386, when it becomes available. They expect to validate in 1985. Michael Ballentine, the president of Software Leverage, in Arlington, Mass., has begun building a portable compiler and hopes for certification in mid-1985. There is another company that did not make our survey called Verdix. This group, which spun off from Intel, is located in Oregon and is working on a verifiable secure system using Ada. During the recent AdaTEC conference in San Diego, TeleSoft announced the certification of the first portable compiler. TeleSoft was expecting the validation process for its compiler to begin in mid-March. Since it is a portable compiler, it must go through a whole series of validations to cover each of the target computer systems that it was designed for. The ACVC is fairly rigorous set of tests. It checks not only for the syntax of the complete language but also for such things as extensions to the language. A validated compiler must pass all applicable tests; failure of even one small part of one test is grounds for denying validation. Upon completion of the validation process, which can take several weeks, the compiler implementer is issued a validation certificate that states, among other things, the date of validation, the hardware included in the validation (a compiler can be validated for several different machines), the operating systems for which the validation is applicable, and the version of the ACVC that was used for the validation process. The ACVC is continually being extended and improved. The San Diego AdaTEC conference was a far cry from the first conference held several years ago, which was attended by only a small group of people. In contrast, between 350 to 400 people attended the most recent conference. Industry Heavyweights. Featured were most of the industry's heavyweights. Bob Mathis, director of the AJPO, was there as well as his predecessor, Larry Druffel of Rational. Ken Bowles, designer of UCSD Pascal and chairman of the board at TeleSoft was on hand. (An interview with him appears elsewhere in this issue.) Jean Ichbiah, the original design leader of the Honeywell-Bull Ada design team, was on hand to announce the availability of a number of Ada education courses through his US company, Alsys, of Waltham, Mass. A number of policy issues were debated at the AdaTEC conference. From the program manger's point of view, Ada is in turmoil. There is much development work to be done in the area of economics before program managers can breathe easily. There are seeming policy conflicts within the directives, with the DOD mandating the use of Ada or a waiver. The Army's Col. Archibald said that the Army is mandating Ada as the PDL (Program Design Language). After that, costs must be competitively weighed before program managers must get a waiver. The Navy says, "Yes, we want you to implement Ada; however, if you do use Ada, you must get a waiver." When looked at logically, it's just part of the evolutionary process, and the services and the DOD are closing rapidly on the same goal. I have to thank a number of people for the information in this article. Philippe Kruchten and Edmond Schonberg, of the Courant Institute of Mathematical Sciences at NYU; Paul Cohen of DCA; Larry Druffel, now with Rational; Bob Mathis, director of the Ada Joint Program Office; Tom Dent of TeleSoft; Thomas (Tim) Standish of UC Irvine and chairman of the board of Irvine Computer Science Corporation; Cynthia A. Hillman and Sandra Denision of IITR, which has the contract for the collection and distribution of all data pertinent to Ada. Of course, one always has to question how seriously we can take an industry in which the person in charge of validation is named Goodenough, and a person who is chairing sessions has a name like Babel. ********************** Flyer H031-0291c histada.txt The Ada Information Clearinghouse maintains an electronic copy of this document on the AdaIC's Internet host: sw-eng.falls-church.va.us 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. Ada Information Clearinghouse (AdaIC) P.O. Box 1866 Falls Church, VA 22041 Phone: 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 Defense Information Systems Agency's Ada Joint Program Office (DOD/DISA/JIEO/CFSW/AJPO), and operated by IIT Research Institute.