A Weakest Precondition Semantics for Refinement of Object-Oriented Programs

We define a predicate-transformer semantics for an object oriented language that includes specification constructs from refinement calculi. The language includes recursive classes, visibility control, dynamic binding, and recursive methods. Using the semantics, we formulate notions of refinement. Such results are a first step toward a refinement calculus.

[1]  Martin Wirsing,et al.  Formal Syntax and Semantics of Java , 1999 .

[2]  Augusto Sampaio,et al.  An Inconsistency in Procedures, Parameters, and Substitution in the Refinement Calculus , 1999, Sci. Comput. Program..

[3]  K. Rustan M. Leino,et al.  Joining Specification Statements , 1999, Theor. Comput. Sci..

[4]  C. A. R. Hoare,et al.  Data Refinement Refined , 1986, ESOP.

[5]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[6]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[7]  Ana Cavalcanti,et al.  A Weakest Precondition Semantics for an Object-Oriented Language of Refinement , 1999, World Congress on Formal Methods.

[8]  Paulo Borba,et al.  Where are the Laws of Object-Oriented Programming? , 1998 .

[9]  C. A. R. Hoare,et al.  Prespecification in Data Refinement , 1987, Inf. Process. Lett..

[10]  Emil Sekerinski,et al.  A Study of The Fragile Base Class Problem , 1998, ECOOP.

[11]  Kaisa Sere,et al.  An Approach to Object-Orientation in Action Systems , 1998, MPC.

[12]  David A. Naumann,et al.  Predicate transformer semantics of a higher-order imperative language with record subtyping , 2001, Sci. Comput. Program..

[13]  Ana Cavalcanti A refinement calculus for Z , 1997 .

[14]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

[15]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[16]  Ken Robinson,et al.  Modular Reasoning in an Object-Oriented Refinement Calculus , 1992, MPC.

[17]  Ralph-Johan Back,et al.  Class Refinement as Semantics of Correct Object Substitutability , 2000, Formal Aspects of Computing.

[18]  David Aspinall,et al.  Subtyping dependent types , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[19]  Jim Woodcock,et al.  A Weakest Precondition Semantics for Z , 1998, Comput. J..

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

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

[22]  Augusto Sampaio,et al.  Procedures and Recursion in the Refinement Calculus , 1998, J. Braz. Comput. Soc..

[23]  Anna Mikhajlova,et al.  Class Refinement as Semantics of Correct Subclassing , 1997 .

[24]  Kevin Lano,et al.  Formal object-oriented development , 1995, FACIT: Formal approaches to computing and information technology.

[25]  K. Rustan M. Leino Recursive Object Types in a Logic of Object-Oriented Programs , 1998, Nord. J. Comput..