Abstract

The paper describes the design and implementation of a distributed Ada system. Ada is not well defined with respect to distribution, and any implementation for distributed execution must make a number of decisions about the language. The objectives in the implementation described here are to remain as close to the current definition of Ada as possible, and to learn through experience what changes are necessary in future versions of the language. The approach taken to distributing a single program is to assign library units that compose it to nodes of the distributed system. In a formal sense the semantics of a program is independent of the distribution because the semantics is interpreted to include all possible behaviours that result from different distributions. However, the functionality of the distributed program may then depend on the distribution in the sense that program behaviour may be impacted by the time required for communication among the distributed modules, or parts of the program may continue to function in presence of failures. The implementation technique converts each distributed module into a standalone program that communicates with its correspondents; each of these may then be compiled by an existing Ada compiler. Issues discussed include the ramifications of sharing of data types, objects, subprograms, tasks, and task types. The implementation techniques used in the translator are described.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call