Previous | Table of Contents | Next |
Some have claimed that Ada was designed by a committee. This claim is simply not true. The HOLWG represented the intended users of the new language. This group oversaw the design competition, but each of the four full language designs was firmly in the hands of a small team in industry. The team that won the competition consisted of Jean Ichbiah and six other members who attest to Ichbiahs strong leadership. It is true that the process was an open one, which was unprecedented in language development, and that many in the community reviewed the design and advised on its refinement, but Ada was designed by its designers.
10.2.1.2. The Name
The name Ada honors Countess Augusta Ada Lovelace (1815-1852), a mathematician and the only legitimate daughter of poet Lord Byron. While in her twenties, she worked with Charles Babbage on his Difference Engine and thus is considered the worlds first computer programmer. The name was suggested in 1978 by Jack Cooper, a member of the HOLWG, at a meeting of the group in Paris. Whitaker, who was not in Paris at the time, is unable to confirm that the meeting took place in a Paris café. On the other hand, his article does contain verbatim copies of a wonderful series of letters in which DoD requestedand receivedpermission from Adas rightful heir, Lord Lytton, to name the language for her.
Adas life has been chronicled in a number of biographies, including Dorothy Steins 1985 work (Stein, 1985). Many Ada language enthusiasts are known to be quite emphatic in their reminders that the Ada language honors a realand interestingperson and therefore is not to be spelled ADA, which refers to (depending on context) the American Dental Association and the Americans with Disabilities Act. The military version of the Ada 83 standard carries reference number MIL-STD 1815A. This number was not chosen idly; the inside joke is that the real Ada was born in 1815.
Under ANSI practice, a standard is revisited five years after its adoption, and a process is begun to determine whether the standard should be retained as is, modified, or withdrawn. Accordingly, in 1988 the Ada standard was opened formally for a second look. (Naturally, during the five years, many informal comments had been collected.) In the words of the Ada IC flier Introducing Ada 95:
A Board of Distinguished Reviewers representing six different countries and comprising 28 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 . Conferences, workshops, small-group meetings and one-on-one consultations were held with various segments of the Ada community, and advice was received from some of the worlds finest software engineers and Government technology leaders.
The revision is an update of the 1987 International Organization for Standardization (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 unanimously and the revised standard reference manual was published 15 February 1995. The ISO approval made Ada 95 the first internationally standardized, fully object oriented programming (OOP) language. Ada 95 also received ANSI approval [in April 1995], following a period of public review and comment .
The design of the language revisions, as well as creation of a new reference manual, was completed by Intermetrics, Inc., of Cambridge, MA.
The Intermetrics team leader was S. Tucker Taft, and the Ada 95 language design shows his imprint as vividly as Ada 83 shows that of Jean Ichbiah. As was the case with Ada 83, the Ada 95 process was an especially open one, with input solicited from any and all in the community, but Ada 95, like its predecessor, was designed by its designers, not by a committee.
Six or seven years may seem a long time to revise a language standard, but in fact, most other language standardization processes have taken longer, sometimes much longer. Designing a language is complex and highly specialized, and convincing a large number of organizations to approve the design and vote favorably on a national or international standard is time-consuming and requires much skill in the art of human persuasion. This is borne out by the lengthy process of developing a standard for C++ and also the current (fall 1997) controversies raging among those who would produce a standard for Java.
10.2.2.1. Language Features
Ada 95 is a smooth and upward-compatible extension of Ada 83. Revisions to Ada 83 were requested, and designed, in several key areas. I quote again from the Ada IC summary. These features are explored in some depth in section 10.4:
The capabilities of Ada 83 were enhanced for Ada 95 through the definition of a small number of new building blocks in three basic areas: object oriented programming, programming in the large, and real-time and parallel programming. In each case, the revision team used existing features as the basis for enhanced capabilities: The derived and universal types were the basis for object-oriented programming features; the existing notion of library units formed the basis for hierarchical namespace and program partitioning; and the concepts of private types, functions, procedures, and entries provided the basis for protected record construct, supporting fast mutual exclusion, and asynchronous task communication.
10.2.2.2. The Annexes
One important aspect of the Ada 95 design is that the standard is now divided into a core languagewhich provides all the syntactic structuresand a set of Annexes. The Annexes provide predefined types and packages (modules) as well as specifying certain implementation recommendations and requirements; no new syntax is introduced in the Annexes.
Annex A describes the rich set of standard libraries, which support text, binary, and stream input/output, command-line parameters, math functions, random number generators, character mapping and translation, dynamic strings, and other assorted capabilities. Implementations are required to provide a complete Annex A. Annex B describes Adas stand-ard interfaces to C, COBOL, and Fortran, including mechanisms for importing foreign-language routines to Ada programs and exporting Ada routines to other languages. Also specified are types corresponding to those of the other languages and storage-allocation conventions to match those of the other languages. (Fortran-style array storage is a good example.)
Annexes C through H are referred to as special needs annexes; implementations are not required to provide support for these but must follow the standard if they do. These annexes are
These annexes are described further in section 10.4.
Previous | Table of Contents | Next |