Ada* is unquestionably one of the most significant programming
languages to emerge in the last decade. The manner of its inception and
support by the US Department of Defense (DoD) ensures that it will be
used extensively for the indefinite future in programming large and
complex systems. The growing availability of compilers means that many
organisations are already committed to using the language for sizable
and significant applications. As a perhaps inevitable result of its
design goals, Ada is a "large" language. It has Pascal-like control and
type constructs; a mechanism for exception handling; a package structure
for information hiding, decomposition and separate compilation;
facilities for low-level programming; and a tasking model of
concurrency. It is perhaps this last area that has generated most
debate, criticism and disagreement. The purpose of this book is to
review the tasking model in the light of the extensive analysis and
comment which has appeared in the literature. The review is necessarily
wide-ranging, including discussion of - Ada as a general purpose
concurrent programming language, - Ada as a language for embedded and
distributed systems, - implementation issues, with particular reference
to distributed systems, - formal semantics, specification and
verification, - proposed language modifications. By consolidating this
discussion within the confines of a single review, potential users of
the tasking facility are enabled to familiarise themselves with all the
factors which may impinge upon the performance, reliability and
correctness of their software. The book also provides a focus for any
debate on modifications to the Ada language, or developments from it.