Ada and Software Development Support: A New Concept in Language Design

of its critics charge that Ada is too complex. Yet the features that make it complex also make it a superior vehicle for large-scale software development. When support for large-scale software development was incorporated into the Adal programming language during its development, additional application areas were opened beyond that of providing a standard, machine-independent high-order language for implementing embedded computer system software-the application requirement set forth by its sponsor, the US Department of Defense. The effects of Ada's influence are likely to spread because embedded systems have much in common with a number of other applications, particularly since the complexity of embedded systems requires the development of large programs. In contrast to Ada, most existing programming languages emphasize syntax and features that are used to describe relatively small program units such as statements and procedures. Indeed, the great "structured program-ming" debate of the 1970's was frequently characterized as an argument over the suitability of the GOTO statement. But the designers of Ada were concerned with a much more important kind of structured programming: the organization of a large program into modules so that reliability, readability, and maintainability were maximized. In this they were successful since the features of the language explicitly reflect these qualities. What Ada does is include support for the development of modular program structure and for the definition of types and operations, allowing a programmer to effectively "extend" the language. Typically, the implementation of a large software system is accomplished through the use of a programming language plus some application oriented extensions.2 In most languages, however, procedures are the only available extension capability. But a language such as Ada, which provides support for more comprehensive extensions, allows greater support for software development.

[1]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, Commun. ACM.

[2]  C. A. R. Hoare,et al.  The emperor's old clothes , 1981, CACM.

[3]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[4]  John G. P. Barnes An overview of Ada , 1980, Softw. Pract. Exp..

[5]  Marvin V. Zelkowitz,et al.  Programming Languages: Design and Implementation , 1975 .

[6]  Ronald F. Brender,et al.  What is Ada? , 1981, Computer.