On Mon, 6 Dec 2004 09:47:22 -0500, David Botton wrote:

>Ok #2 in our series of questions that will make their way in to the
>FAQ, articles, etc. (I will be putting together #1 answers soon)
>Why is it better to have tasking as a language feature than as an API?

One advantage of having tasking in the language rather than as an API to an underlying operating system is that all of
the features of the language are available to the task.  Particularly, the strong typing of Ada carriers over to the
interfaces of the task entries.  Similarly, the full type model is available including protected objects and tagged types.
Thus enabling both protected operations and class-wide dispatching within task bodies.  Of course, neither of these
features need be used if the developer or their associated coding guidelines recommend against the use of such

Another advantage to having tasking in the language is tha the exception model is integrated with the thread model
thereby enabling detection of exceptional behavior within the appropriate thread of execution.

Yet another advantage to having tasking in the language is that it is available regardless of the underlying execution
platform.  Hence, the tasking may be used when the target execution environment is a bare-board as well as when the
target is an operating system.  The characteristics of the language feature will be the same regardless of the underlying
execution environment However, the execution time performance will varying depending on the Ada runtime

From a certification point of view, it is possible to certify tasking applications by certifying the appropriate portions of the
Ada runtime environment rather than needing to certify an entire operating system as well as the associated APIs.  The
later may require several different organizations to be involved in the certification activities.

Joyce L Tokar, PhD
Pyrrhus Software
[log in to unmask]