AdaPower Logged in as Guest
Ada Tools and Resources

Ada 95 Reference Manual
Ada Source Code Treasury
Bindings and Packages

Join >
Home >
Articles >
Getting Started >
Ada FAQ >
Source Treasury >
Books & Tutorials >
Packages for Reuse >
Latest Additions >
Ada Projects >
Press Releases >
Ada Audio / Video >
Home Pages >
Links >
Contact >
About >
Login >
What is the history of Ada?

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)

(c) 1998-2004 All Rights Reserved David Botton