A Comparison of the Asynchronous Transfer of Control Features in Ada and the Real-Time Specification

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, and compares them with respect to safety, programming style / expressive power, and implementability / latency / efficiency.