An Approach to Object-Orientation in Action Systems

We extend the action system formalism with a notion of objects that can be active and distributed. With this extension we can model class-based systems as action systems. Moreover, as the introduced constructs can be translated into ordinary action systems, we can use the theory developed for action systems, especially the refinement calculus, even for class-based systems. We show how inheritance can be modelled in different ways via class refinement. Refining a class with an other class within the refinement calculus ensures that the original behavior of the class is maintained throughout the refinements. Finally, we show how to reuse proofs and entire class modules in a refinement step.

[1]  Ralph-Johan Back,et al.  Decentralization of process nets with centralized control , 1983, PODC '83.

[2]  Kaisa Sere,et al.  From Action Systems to Modular Systems , 1994, Softw. Concepts Tools.

[3]  Ben Strulo How Firing Conditions Help Inheritance , 1995, ZUM.

[4]  Joseph M. Morris,et al.  A Theoretical Basis for Stepwise Refinement and the Programming Calculus , 1987, Sci. Comput. Program..

[5]  Luca Cardelli,et al.  A language with distributed scope , 1995, POPL '95.

[6]  Roger Duke,et al.  The Ecology of Class Refinement , 1991 .

[7]  David Walker,et al.  Objects in the pi-Calculus , 1992, Inf. Comput..

[8]  David A. Naumann,et al.  Predicate Transformer Semantics of an Oberon-Like Language , 1994, Programming Concepts and Methods.

[9]  Kaisa Sere,et al.  Data Refinement and Remote Procedures , 1997, TACS.

[10]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[11]  Frank Waters,et al.  The B Book , 1971 .

[12]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[13]  M. Wald Layering Distributed Algorithms , 1997 .

[14]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[15]  Marc Najork,et al.  Distributed Active Objects , 1996, Comput. Networks.

[16]  Carroll Morgan,et al.  The specification statement , 1988, TOPL.

[17]  Kaisa Sere,et al.  Action Systems with Synchronous Communication , 1994, PROCOMET.

[18]  Reino Kurki-Suonio,et al.  DisCo specification language: marriage of actions and objects , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[19]  Emil Sekerinski,et al.  Action-Based Concurrency and Synchronization for Objects , 1997, ARTS.

[20]  Rob T. Udink,et al.  ImpUNITY: UNITY with Procedures and Local Variables , 1995, MPC.

[21]  Ralph-Johan Back,et al.  Refinement Calculus, Part II: Parallel and Reactive Programs , 1989, REX Workshop.

[22]  Pierre America,et al.  Denotational Semantics of a Parallel Object-Oriented Language , 1989, Inf. Comput..

[23]  Pierre America,et al.  Operational semantics of a parallel object-oriented language , 1986, POPL '86.

[24]  K. Mani Chandy Parallel program design , 1989 .

[25]  Carl Hewitt,et al.  Viewing Control Structures as Patterns of Passing Messages , 1977, Artif. Intell..

[26]  Ralph-Johan Back,et al.  Correctness preserving program refinements: Proof theory and applications , 1980 .

[27]  Kevin Lano,et al.  Reasoning and Refinement in Object-Oriented Specification Languages , 1992, ECOOP.

[28]  Kaisa Sere,et al.  Superposition Refinement of Parallel Algorithms , 1991, FORTE.

[29]  Cliff B. Jones A pi-Calculus Semantics for an Object-Based Design Notation , 1993, CONCUR.

[30]  Emil Sekerinski,et al.  Class Refinement and Interface Refinement in Object-Oriented Programs , 1997, FME.

[31]  Marina Waldén Layering Distributed Algorithms , 1997 .

[32]  Bart Jacobs,et al.  Reasonong about Classess in Object-Oriented Languages: Logical Models and Tools , 1998, ESOP.

[33]  Martín Abadi,et al.  A Logic of Object-Oriented Programs , 1997, Verification: Theory and Practice.

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