ABSTRACT
In this paper we describe the design and implementation of the generalized alternative construct for the Erasmus programming language. The alternative construct is a generalization of the familiar if-then-else statement that allows a process to non-deterministically choose between possible communications on several channels. Previous algorithms put restrictions on the use of the alternative construct that prevent both input/output operations to be used in an alternation. Our design removes previous restrictions on the use of the alternative construct. In order to support our design and to prove its correctness, we build models based on the ACP algebra, and we use the mCRL2 model checker to analyze and verify our models.
- J. C. M. Baeten, T. Basten, and M. A. Reniers. Process Algebra: Equational Theories of Communicating Processes. Cambridge University Press, New York, NY, USA, 1st edition, 2009. Google ScholarDigital Library
- Julian Bradfield and Colin Stirling. Modal mu-calculi. In Handbook of Modal Logic, pages 721--756. Elsevier, 2007.Google ScholarCross Ref
- Brookes, S. D. and Hoare, C. A. R. and Roscoe, A. W. A Theory of Communicating Sequential Processes. J. ACM, 31(3):560--599, 1984. Google ScholarDigital Library
- G. N. Buckley and Abraham Silberschatz. An Effective Implementation for the Generalized Input-Output Construct of CSP. ACM Trans. Program. Lang. Syst., 5(2):223--235, Apr 1983. Google ScholarDigital Library
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1995. Google ScholarDigital Library
- Peter Grogono and Brian Shearing. Concurrent Software Engineering: Preparing for Paradigm Shift. In Canadian Conference on Computer Science & Software Engineering (C3S2E), pages 99--108, May 2008. Google ScholarDigital Library
- Peter Grogono and Brian Shearing. Modular Concurrency: A New Approach to Manageable Software. In 3rd International Conference on Software and Data Technologies (ICSOFT 2008), pages 47--54, July 2008.Google Scholar
- J.F. Groote, J. Keiren, A. Mathijssen, B. Ploeger, F. Stappers, C. Tankink, Y. Usenko, M. van Weerdenburg, W. Wesselink, T. Willemse, and J. van der Wulp. The mCRL2 Toolset. In Proceedings of the International Workshop on Advanced Software Development Tools and Techniques (WASDeTT 2008), 2008.Google Scholar
- Frederick Knabe. A Distributed Protocol for Channel-Based Communication with Choice. In Proceedings of the 4th International PARLE Conference on Parallel Architectures and Languages Europe, PARLE'92, pages 947--948, London, UK, UK, 1992. Springer-Verlag. Google ScholarDigital Library
- Gavin Lowe. Implementing Generalised Alt. In Peter H. Welch, Adam T. Sampson, Jan Baekgaard Pedersen, Jon Kerridge, Jan F. Broenink, and Frederick R. M. Barnes, editors, Communicating Process Architectures 2011, pages 1--34, June 2011.Google Scholar
- Bernard Sufrin. Communicating scala objects. In Peter H. Welch, Susan Stepney, Fiona Polack, Fred R. M. Barnes, Alistair A. McEwan, Gardiner S. Stiles, Jan F. Broenink, and Adam T. Sampson, editors, CPA, volume 66 of Concurrent Systems Engineering Series, pages 35--54. IOS Press, 2008.Google Scholar
- Welch, Peter and Brown, Neil and Moores, James and Chalmers, Kevin and Sputh, Bernhard. Alting barriers: synchronisation with choice in Java using JCSP. Concurr. Comput.: Pract. Exper., 22(8):1049--1062, 2010. Google ScholarDigital Library
- Welch, Peter H. and Martin, Jeremy M. R. A CSP Model for Java Multithreading. In Proceedings of the International Symposium on Software Engineering for Parallel and Distributed Systems, PDSE'00, pages 114--122, Washington, DC, USA, 2000. IEEE Computer Society. Google ScholarDigital Library
Index Terms
- Implementing generalized alternative construct for erasmus language
Recommendations
On the limits of refinement-testing for model-checking CSP
AbstractRefinement-checking, as embodied in tools like FDR, PAT and ProB, is a popular approach for model-checking refinement-closed predicates of CSP processes. We consider the limits of this approach to model-checking these kinds of predicates. By ...
Using Category Theory to Verify Implementation Against Design in Concurrent Systems
AbstractThe research has shown that process-oriented programming languages provide a suitable means for developing concurrent systems. However, in the development of a concurrent system, there is a challenge to manage consistency between design and ...
A formal semantics of extended hierarchical state transition matrices using CSP#
AbstractThe extended hierarchical state transition matrices (EHSTMs) are a table-based modelling language frequently used in industry for specifying behaviours of systems. However, assuring correctness, i.e., having a design satisfy certain desired ...
Comments