Communicating sequential processes
Communicating sequential processes
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
The Theory and Practice of Concurrency
The Theory and Practice of Concurrency
Concurrent and Real Time Systems: The CSP Approach
Concurrent and Real Time Systems: The CSP Approach
ZB '02 Proceedings of the 2nd International Conference of B and Z Users on Formal Specification and Development in Z and B
A Semantic Integration of Object-Z and CSP for the Specification of Concurrent Systems
FME '97 Proceedings of the 4th International Symposium of Formal Methods Europe on Industrial Applications and Strengthened Foundations of Formal Methods
Algebraic Operational Semantics and Occam
CSL '89 Proceedings of the 3rd Workshop on Computer Science Logic
Model-Checking CSP-OZ Specifications with FDR
IFM '99 Proceedings of the 1st International Conference on Integrated Formal Methods
Combining CSP and b for specification and property verification
FM'05 Proceedings of the 2005 international conference on Formal Methods
A semantics for Behavior Trees using CSP with specification commands
Science of Computer Programming
Integrated operational semantics: small-step, big-step and multi-step
ABZ'12 Proceedings of the Third international conference on Abstract State Machines, Alloy, B, VDM, and Z
Hi-index | 0.00 |
The process algebra CSP is designed for specifying interactions between concurrent systems. In CSP, and related languages, concurrent processes synchronise on common events, while the internal operations of the individual processes are treated abstractly. In some contexts, however, such as when modelling systems of systems, it is desirable to model both interprocess communications as well as the internal operations of individual processes. At the implementation level, shared state is often the method of communication between processes, and tests and updates of local state are used to implement internal operations. In this paper we propose an extension of the CSP language which maintains CSP's core elegance in specifying process synchronisation, while also allowing state-based behaviour. State is treated hierarchically , allowing (nested) declarations of local and shared variables. The state can be accessed and modified using a refinement calculus-style specification command , which may be optionally paired with event synchronisation. The semantics of the extended language, preserves the original CSP rules. The approach we present is novel in that state is part of the process, rather than a meta-level construct appearing only in the rules.