Author_Institution :
Dept. of Stat. & Comput. Sci., West Virginia Univ., Morgantown, WV, USA
Abstract :
To facilitate construction and use of multiple implementations of the same specification, it is shown that an important class of programming language mechanisms, not present in languages such as Ada, is essential. Ways to enhance Ada with these mechanisms are proposed, and a small set of programming language mechanisms to facilitate the use of multiple implementations is presented. By means of these mechanisms, the functionality and the performance of software systems can be separated, specified, analyzed, and verified. It is argued, using realistic examples, that it is necessary to name specifications and implementations separately, to distinguish parameters of specifications and implementations, and for it to be possible for clients to associate different implementations with different instances of the same abstractions. To support these possibilities, it is shown that some basic language mechanisms are essential. How the proposed solutions can be extended to produce performance-parameterized implementations and reusable translators is outlined
Keywords :
Ada; Ada listings; formal specification; high level languages; software reusability; Ada; abstractions; programming language mechanisms; reusable translators; specification; Computer industry; Computer languages; Computer science; Data structures; Electronic mail; Hardware; Manufacturing industries; Software reusability; Software systems; Statistics;