The need for simple, readable and efficient communication software in Ada is apparent. This paper suggests an elegant and efficient solution for real time communication software that considers the urgency of a message and the security level associated with such messages. We propose the use of the preference control construct, "pref", for the explicit control of preferences among different entries within the select statement. The preference control construct makes our solution much more readable, understandable, easy to modify and more efficient. We argue the necessity for the preference control construct in Ada. We also give a possible solution without the use of explicit preference control; but the resulting software does not measure up to the high quality software engineering standards that are attained with the use of explicit preference control. An example of message routing software is included in this paper. The advantages of using explicit preference control are discussed from two complementary aspects. First, the run time analysis shows that the response time is much faster using explicit preference control. The response time is obviously a very important constraint on military communication software. Secondly, we state a general principle called the branching wide horizons principle, which captures the necessary expressive power needed for the efficient control of communication. The preference control used in our communication is a natural implementation of this principle.
[1]
Gregory R. Andrews,et al.
Synchronizing Resources
,
1981,
TOPL.
[2]
E. Horowitz.
Fundamentals of Programming Languages
,
1983,
Springer Berlin Heidelberg.
[3]
Nissim Francez,et al.
Symmetric intertask communication
,
1985,
TOPL.
[4]
Abraham Silberschatz,et al.
Cell: A Distributed Computing Modularization Concept
,
1984,
IEEE Transactions on Software Engineering.
[5]
Narain H. Gehani,et al.
Ada: Concurrent Programming
,
1984
.
[6]
C. A. R. Hoare,et al.
Communicating sequential processes
,
1978,
CACM.
[7]
Henry Ledgard,et al.
Reference Manual for the ADA® Programming Language
,
1983,
Springer New York.
[8]
Matthew Hennessy,et al.
Full Abstraction for a Simple Parallel Programming Language
,
1979,
MFCS.
[9]
Fred Maymir-Ducharme,et al.
Introducing the preference control primitive experience with controlling nondeterminism in Ada
,
1986,
WADAS '86.