What is Ada?
Original Publication Date: 1981-Jun-01
Included in the Prior Art Database: 2005-Nov-11
Software Patent Institute
Ronald F. Brender: AUTHOR [+4]
The key to abstraction is information hiding. Ada provides two principal mechanisms for hiding details of implementation while exporting, or making available to users, the mechanisms for using the im- plementation. The first has already been described. The fact that the package is composed of two physically separate parts-the specification and the body-forms the basis for hiding the implementation details of the package. Indeed, given the specification, it is possible to compile programs which make use of the package before the package body even exists. All of the information needed to compile programs referencing a package is given in the package specification. The second mechanism is the private part of the package specification. Its purpose is to provide a place for declarations that are necessary to define the physical in- terface of the package, but which must not be included in its logical interface. The physical interface of a package provides the information that a compiler must have when compiling a program that uses facilities provided by the package. The logical interface is simply the visible part of the package. The distinction between physical and logical interface is not meant to imply that the information con- tained in the private part is invisible to the user of a package. It is not. Instead, it implies that the user of the package is unable to make use of the information contained in the private part in any way that will affect the correctness of his program. In the example specification for the package TEXT, the declaration of the private type FILE following the word "private" is part of the physical interface. This allows compilers to allocate storage for file objects. This distinction between physical and logical interfaces permits the following maintainability characteristics to hold.
THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.
This record contains textual material that is copyright ©; 1981 by the Institute of Electrical and Electronics Engineers, Inc. All rights reserved. Contact the IEEE Computer Society http://www.computer.org/ (714-821-8380) for copies of the complete work that was the source of this textual material and for all use beyond that as a record from the SPI Database.
What is Ada?
Ronald F. Brender Isaac R. Nassi
Digital Equipment Corporation
This introduction to the principalfeatures of Ada emphasizes those aspects expected to offer significant advantage in large-scale program development.
During the five years that Ada was being developed under the sponsorship of the US Department of Defense, considerable effort went into determining what requirements a language intended principally for embedded computer applications had to satisfy. The resulting language, however, is suitable not only for embedded computer applications, but also for general systems programming, real-time industrial applications, general applications programming, numeric computation, and for teaching good programming practices. This article introduces some of the concepts and features of Ada from which it derives its strength.
Modularization and large-scale software development
In recent years, many efforts have been made to reduce the complexity of large-scale software development projects. A number of these efforts are based on the notion of modularization-that is, partitioning solutions to large, complex problems into smaller, more understandable, and hence more manageable components.
Software maintenance was also a major concern in the design of Ada. Various kinds of inconsistencies that normally occur during the evolution of large systems will not occur in systems developed in Ada. A compilation data base allows modularization and separate compilation of components without giving up the ability to provide program-wide type checking.
Ada encourages, even demands, what has been called a "constructive" approach to programming. The facilities in Ada have been formulated to provide mechanisms for modularization.
The value of abstraction* in programming-long appreciated by programmers and language designers-has received much well-deserved publicity in recent years. In most languages, the procedure is the primary abstraction mechanism. To a lesser extent, separate compilation offers a means for modular grouping of related procedures and, perhaps, some common data objects. However, separate compilation as a means of abstraction is not directly supported in the widely used languages; when the concept has been employed, it has been through conventions for using the language. In Ada, the notion of abstraction has been elevated to a prominent position.
The concept of the Ada package is probably the language's principal contribution to the programming art. A package consists of two components-a specificat...