Abstract
Multitasking is one of the most novel aspects of Ada. However, the combination of language primitives for concurrent execution of tasks, synchronization, termination, abortion, exception handling, etc. make Ada programs difficult to understand and analyze. This is partly due to the inherent complexity of the language and partly to the lack of a rigorous definition of its semantics. The Ada Reference Manual describes semantics in informal English prose; as a result, it is often verbose and ambiguous. The goal of this paper is not to provide a complete formal semantics of Ada multitasking. Rather, we illustrate the use of a semi-formal approach based on (timed) Petri nets which support a rigorous description of the language. The approach is described by stepwise refinements and is used to describe several cases of task interactions, ranging from simple to complex ones. The proposed approach can easily be applied in the description of other multitasking problems not covered in the paper.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have