A Comparison of the Asynchronous Transfer of Control Features in Ada and the Real-Time Specification for Java. Benjamin M. Brosgol & A.J. Wellings. 8th International Conference on Reliable Software Technologies - Ada-Europe 2003 (AE03), Toulouse, France, 16-20 June 2003
Asynchronous Transfer of Control ("ATC") is a transfer of control within a thread, triggered not by the thread itself but rather from some external source such as another thread or an interrupt handler. ATC is useful for several purposes; e.g. expressing common idioms such as timeouts and thread termination, and reducing the latency for responses to events. However, ATC presents significant issues semantically, methodologically, and implementationally. This paper describes the approaches to ATC taken by Ada and the Real-Time Specification for Java [2, 3], and compares them with respect to safety, programming style / expressive power, and implementability / latency / efficiency.
One of the interesting papers in Ada-Europe this year. ATC essentialy means that control can jump inside a thread, without the thread's knowledge or preparation. This, of course, has immediate safety implications. Programming languages must provide ways for the programmer to ensure the consistency of his system.
ATC is a difficult issue in language design, and both Ada and the RTSJ have made serious attempts to
provide workable solutions. They share a common philosophy in opting for safety as the most important
objective, and thus in defining ATC to be deferred in certain regions that must be executed to completion.
They offer roughly comparable expressive power, but they differ significantly in how the mechanism is
realized and in the resulting programming style.
Posted to Software-Eng by Ehud Lamm on 6/22/03; 3:05:09 AM