From: Patricia Shanahan on
Srinu wrote:
> You are correct. I was looking for little answers something like
> below:
>
> In case of sequential programming, We define
>
> Partial correctness as:
> "If the program terminates, it is guarenteed to produce correct
> result."
>
> and define
>
> Total correctness as:
> "The program is guarenteed to terminate and it is guarenteed to
> produce correct result."
>
> But in concurrent programming we find two kinds of programs.
> 1. those which terminates.
> 2. those which never terminates.
>
> What are the definitions for partial correctness and total correctness
> for these two veriety of programs?

Whether the program is expected to terminate is much more significant
than whether it is concurrent or not.

I have written concurrent programs that are expected to terminate, and
to be totally correct. On the other hand, I have also written sequential
programs that are not expected to terminate, and go on running until
killed externally.

One could apply the total/partial correctness idea to transactions in a
transaction processing program. If the non-terminating program does not
have transaction-like units of work that do terminate, it is hard to see
how to extend total and partial correctness to it.

Patricia