Communicating sequential processes
Communicating sequential processes
Hierarchical correctness proofs for distributed algorithms
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Proving entailment between conceptual state specifications
Theoretical Computer Science - First European Symposium on Programming, Saarbru:9Aicken, W. Germany, March 17:8
Algebraic theory of processes
Towards a theory of replicated processing
Proceedings of a Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems
Communication and concurrency
Refining interfaces of communicating systems
TAPSOFT '91 Proceedings of the international joint conference on theory and practice of software development on Advances in distributed computing (ADC) and colloquium on combining paradigms for software development (CCPSD): Vol. 2
The existence of refinement mappings
Theoretical Computer Science
Compositional specification and verification of distributed systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Towards action-refinement in process algebras
Information and Computation
The Theory and Practice of Concurrency
The Theory and Practice of Concurrency
Information and Computation
Trace-Based Compositional Reasoning about Fault Tolerant Systems
PARLE '93 Proceedings of the 5th International PARLE Conference on Parallel Architectures and Languages Europe
Implementing Communicating Processes in the Event of Interface Difference
ACSD '01 Proceedings of the Second International Conference on Application of Concurrency to System Design
Behaviour Abstraction for Communicating Sequential Processes
Fundamenta Informaticae
Hi-index | 0.00 |
We present here an implementation relation intended to formalise the notion that a system built of communicating processes is an acceptable implementation of another base, or target, system in the event that the two systems have different interfaces. Such a treatment has clear applicability in the software development process, where (the interface of) an implementation component may be expressed at a different level of abstraction to (the interface of) the relevant specification component.Technically, processes are formalised using Hoare's CSP language, with its standard failures-divergences model. The implementation relation is formulated in terms of failures and divergences of the implementation and target processes. Interface difference is modelled by endowing the implementation relation with parameters called extraction patterns. These are intended to interpret implementation behaviour as target behaviour, and suitably constrain the former in connection to well-formedness and deadlock properties.We extend the results of our previous work and replace implementation relations previously presented by a single, improved scheme. We also remove all the restrictions previously placed upon target processes. Two basic kinds of results are obtained: realisability and compositionality. The latter means that a target composed of several connected systems may be implemented by connecting their respective implementations. The former means that, if target and implementation in fact have the same interface, then the implementation relation they should satisfy collapses into standard implementation pre-order.We also show how to represent processes and extraction patterns in a manner amenable to computer implementation, and detail a graph-theoretic restatement of the conditions defining the implementation relation, from which algorithms for their automatic verification are easily derived.