1 research outputs found

    Maximally Concurrent Programs

    No full text
    Typically, program design involves constructing a program, P , that implements a given specification, S; that is, the set P of executions of P is a subset of the set S of executions satisfying S. In many cases, we seek a P that not only implements S but for which P = S. Then, every execution satisfying the specification is a possible execution of the program; we call P maximal for the specification S. We argue in this paper that traditional specifications of concurrent programs are incomplete without some maximality requirement because they can often be implemented in a sequential fashion. Additionally, a maximal solution can be refined to a variety of programs each appropriate for execution on a different computing platform. In this paper, we suggest a method for proving the maximality of a program with respect to a given specification. Even though we prove facts about possible executions of programs there is no need to appeal to branching time logics; we employ a fragment of linear temporal logic for our proofs. The method results in concise proofs of maximality for many non-trivial examples. The method may also serve as a guide in constructing maximal programs.
    corecore