A class of programming language mechanisms to facilitate multiple implementations of the same specification
Murali Sitaraman · 2003
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.>