Abstract
Circus is a combination of Z and CSP that supports the development of state-rich reactive systems based on refinement. In this paper we present JCircus, a tool that automatically translates Circus programs into Java, for the purpose of animation and simulation. It is based on a translation strategy that uses the JCSP library to implement some of the CSP constructs of Circus. The tool generates a simple graphical interface; we present a simple example to demonstrate the translation strategy, and the execution of the resulting program. We discuss the class GeneralChannel, which we designed to support the implementation of multi-synchronisation. We also discuss our improvements to the translation strategy, some limitations of the tool, and our approach to prove the correctness of the multi-synchronisation protocol.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Woodcock, J.C.P., Cavalcanti, A.L.C.: A Concurrent Language for Refinement. In: 5th Irish Workshop on Formal Methods (2001)
Woodcock, J.C.P., Davies, J.: Using Z – Specification, Refinement, and Proof. Prentice-Hall, Englewood Cliffs (1996)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs (1985)
Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice-Hall, Englewood Cliffs (1998)
Oliveira, M.V.M.: A Refinement Calculus for Circus. PhD thesis, Department of Computer Science, The University of York (2005)
Welch, P.H.: Process Oriented Design for Java: Concurrency for All. In: International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA 2000) (2000)
Z Standards Panel. Formal Specificationn – Z Notation – Syntax, Type and Semantics — Consensus Working Draft 2.6 (2000), at: http://www.cs.york.ac.uk/~ian/zstan/
Oliveira, M.V.M., Cavalcanti, A.L.C., Woodcock, J.C.P.: Refining Industrial Scale Systems in Circus. In: Communicating Process Architectures (2004)
The occam archive, at: http://vl.fmnet.info/occam/
Freitas, A.: From Circus to Java: Implementation and Verification of a Translation Strategy. Master’s thesis, Department of Computer Science, The University of York (2005)
Java Development Kit, http://java.sun.com/javase/
Woodcock, J.C.P.: Using Circus for Safety-Critical Applications. In: VI Brazilian Workshop on Formal Methods (2003)
Malik, P., Utting, M.: CZT: A Framework for Z Tools. In: Treharne, H., King, S., Henson, M.C., Schneider, S. (eds.) ZB 2005. LNCS, vol. 3455, pp. 65–84. Springer, Heidelberg (2005)
Xavier, M.: Definição Formal e Implementação do Sistema de Tipos para a Linguagem Circus. Master’s thesis, Centro de Informática, Universidade Federal de Pernambuco, Brazil (to be submitted, 2006)
Freitas, L.: Model checking Circus. PhD thesis, Department of Computer Science, The University of York (2005)
Phillips, J.D., Stiles, G.S.: An Automatic Translation of CSP to Handel-C. In: Communicating Process Architectures (2004)
Raju, V., Rong, L., Stiles, G.S.: Automatic Conversion of CSP to CTJ, JCSP, and CCSP. In: Communicating Process Architectures (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Freitas, A., Cavalcanti, A. (2006). Automatic Translation from Circus to Java. In: Misra, J., Nipkow, T., Sekerinski, E. (eds) FM 2006: Formal Methods. FM 2006. Lecture Notes in Computer Science, vol 4085. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11813040_9
Download citation
DOI: https://doi.org/10.1007/11813040_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-37215-8
Online ISBN: 978-3-540-37216-5
eBook Packages: Computer ScienceComputer Science (R0)