Unifying classes and processes

Previously, we presented Circus, an integration of Z, CSP, and Morgan’s refinement calculus, with a semantics based on the unifying theories of programming. Circus provides a basis for development of state-rich concurrent systems; it has a formal semantics, a refinement theory, and a development strategy. The design of Circus is our solution to combining data and behavioural specifications. Here, we further explore this issue in the context of object-oriented features. Concretely, we present an object-oriented extension of Circus called OhCircus. We present its syntax, describe its semantics, explain the formalisation of method calls, and discuss our approach to refinement.

[1]  Clemens Fischer Combination and implementation of processes and data: from CSP-OZ to Java , 2000 .

[2]  Augusto Sampaio,et al.  A Refinement Strategy for Circus , 2003, Formal Aspects of Computing.

[3]  Steve A. Schneider,et al.  Communicating B Machines , 2002, ZB.

[4]  Heike Wehrheim Subtyping patterns for active objects , 2007 .

[5]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[6]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[7]  Brian A. Wichmann,et al.  Rationale for the design of the Ada programming language , 1979, SIGP.

[8]  Jonathan P. Bowen,et al.  ZUM '98: The Z Formal Specification Notation , 1998 .

[9]  DPhil John Derrick BSc,et al.  Refinement in Z and Object-Z , 2001, Formal Approaches to Computing and Information Technology.

[10]  Ana Cavalcanti,et al.  From Circus to JCSP , 2004, ICFEM.

[11]  Augusto Sampaio,et al.  A Refinement Algebra for Object-Oriented Programming , 2003, ECOOP.

[12]  Graeme Smith,et al.  The Object-Z Specification Language , 1999, Advances in Formal Methods.

[13]  Augusto Sampaio,et al.  Algebraic reasoning for object-oriented programming , 2004, Sci. Comput. Program..

[14]  Augusto Sampaio,et al.  Model-checking CSP-Z: strategy, tool support and industrial application , 2001, Sci. Comput. Program..

[15]  Heike Wehrheim,et al.  Behavioural Subtyping Relations for Object-Oriented Formalisms , 2000, AMAST.

[16]  Carroll Morgan,et al.  Programming from specifications (2nd ed.) , 1994 .

[17]  Ana Cavalcanti,et al.  Forward Simulation for Data Refinement of Classes , 2002, FME.

[18]  Jim Woodcock,et al.  A Concurrent Language for Refinement , 2001, IWFM.

[19]  Clemens Fischer,et al.  How to Combine Z with Process Algebra , 1998, ZUM.

[20]  Jim Woodcock,et al.  The Semantics of Circus , 2002, ZB.

[21]  Peter H. Welch,et al.  CSP Networking for Java (JCSP.net) , 2002, International Conference on Computational Science.

[22]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[23]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[24]  Michael Goldsmith,et al.  Programming in occam 2 , 1985, Prentice Hall international series in computer science.

[25]  Ana Cavalcanti,et al.  A Weakest Precondition Semantics for Refinement of Object-Oriented Programs , 2000, IEEE Trans. Software Eng..

[26]  Augusto Sampaio,et al.  Class and Capsule Refinement in UML for Real Time , 2004, WMF.

[27]  C. A. R. Hoare,et al.  Unifying theories of programming , 1998, RelMiCS.

[28]  Clemens Fischer CSP-OZ: a combination of object-Z and CSP , 1997 .

[29]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[30]  Alexander Bunkenburg,et al.  Partiality and Nondeterminacy in Program Proofs , 1998, Formal Aspects of Computing.

[31]  J. Woodcock,et al.  Refinement in Circus , 2002, FME.

[32]  Jin Song Dong,et al.  Timed Communicating Object Z , 2000, IEEE Trans. Software Eng..

[33]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[34]  Augusto Sampaio,et al.  Refinement of actions in Circus , 2002, Refine.