Thursday, September 2, 2010

Historical Vignette Ada Programming Language

In the mid-seventies the DOD, which is not known for its budgetary restraint, was spending approximately $3 bilion a year on sofware. We're all used to seeing such huge figures attached to the military, but in this case the cost was a bit too steep. Something had to be done to lower the software price tag. A large part of the problem was the fact that mire than 450 different programming  languages or incompatible dialects of the same language were being used by the military. This created problems of limited portability from machine to machine, limited reusability of procedures in subsequents programs, and general confusion. The time had come to find a standard language in which all programs for the departement would be written.

Since about 56 percent of the software purchased was used for embedded or mission-critical computer applications. "Much of the computer programming done by the U.S. military is used for controlling military hardware-tanks, airplanes, nuclear bombs. To control such hardware, a computer program must operate in "real-time," that is, while the tank is rolling or the plane is flying.
A navy fighter pilot can't wait for result to be returned from the computer center the next day" [Baron, 1986]. Embedded real-time sytems are embedded within a larger mechanical system, such as robot or a pilotless plane.

In 1975, the DOD set up the Higher-Order Language Working Group (HOLWG) to find a standard langugae for embedded  computer applications. HOLWG's first step was to develop a set of requirementa for this language with input from the Army, Navy, Air Force, universitas, and industry. From1975 to 1979, as the set of requirements evolved and grew, the name given to the sect changed from Strawman (!975), to Woodenman (1975), to Tinman (1976), to Ironman (1978), to Steelman (1979). This final Steelman set contains close to 100 requirements. These constrained  the language "to have language constructs with specified characteristics in areas such as types, controls structures, modules, tasks, and exceptions. Certain global requirements on 'readability,' 'no excessive generality,' 'simplicity', and 'verifiabiity' were also inluded" [Wegner, 1980].

The next step taken by HOLWG was to study existing languages to see if any met the set of requirements. After an intensive study of the 26 existing candidat languages, it was decided that none filled all the requirements, and that a new state-of-the-art language would have to be developed. HOLWG recommended that one of ALGOL 68, Pascal, or PL/I should be used as a foundation for the design. An international language design competition was held. Seventeen groups sent proposals, but only four were chosen for futher development. These were funded for six months to produce a preliminary language design. Each group was given the name of color to preserve anonymity and insure fair evaluations.  These groups were CII Honeywell Bull (Green), Intermetrics (Red), Softech (Blue), and SRI International (Yellow). It is interesting that each of these groups chose pascal as base for their language design. At the end of six months, the Red and Green groups were chosen as finalist and given an additional year for development.

In 1979, the Green team was chosen winner. This team, led by Jean Ichbiah, renamed the green language "Ada." The name honors Augusta Ada Byron, the assistant, associate, and supporter of Charles Babbage, the mathematician and inventor of a calculating machine called the Analytical Engine. With the help of Babbage, she wrote a nearly complete program to computer the Bornoulli numbers, circa 1830. Because of this effort, the Countess may be said to have been the world's first computer programmer" [Gehani, 1994].
Jean Ichbiah's team completed the design of Ada in September 1980, only after considering  7000-plus comments and suggestions from language design experts in more than 15 nations. In January 1983, Ada became a military software had to be programmed in Ada.

Even though a standard language had been developed, the problem of too many languages was not solved. The DOD realized that if subsets and supersets of Ada developed and were allowed to retain the Ada name, the portability problem would return. To insure that this would not happen, the DOD took "the unprecedented action of registering the name 'Ada' as a trademark. This provided the ability to control the use of this name and to guarantee that anything called 'Ada' was the standard language. That is, subsets and supersets of Ada could not legally be called 'Ada'" [MacLennan, 1987]. In addition to this trademark, the DOD set up the Ada compiler does in fact implement the standard language. This process includes over 2500 tests. DOD has since dropped its trademark, although both defense and NATO contracts specify the use of validated Ada compilers. Although designed for embedded processes, Ada is not restricted to these applications. Ichbiah sees a potential use for Ada in both business and education. Because of its rich general-purpose features, Ada has become more popular and is being used as the beginning programming language at a number of colleges and universities.

The revised version of the Ada 83 stadard is termed Ada 95 [ANSI/ISO-8652,1995]. It was initiallu named Ada 9X because it was due in the 1990s, though the last digit of the years unknown at the time of development. Aside from correcting minor errors, several enhancements are included, particularly in the areas of object oriented programming and in parallel and distributed processing. It was considered important to maintain upward compatibility, so that existing software and tools wouldn't become obsolete. The needs of information systems software are very different from those of real-time systems, however. It is hoped that various additions to the language may provide for the specific needs of different users.

No comments:

Post a Comment