Modelling Object-oriented Program- ming with Reference Type and Dy- namic Binding

This report aims to develop mathematical characterisations of object-oriented concepts, and provide a proper semantic basis essential for ensuring correctness and for the development of tools to support the use of formal techniques. We present an observation-oriented semantics for an object-oriented language with a rich variety of features, including subtype, visibility, inheritance, dynamic binding and polymorphism. The language is sufficient similar to Java and C++ used in meaningful case studies and to capture some of the central difficulties. Our approach has mostly been influenced by the development of the design calculus based on the standard predicate logic. The difference is that states are encoded as a mapping from variables to sequences of values in coping with nested declaration of variables. The approach also considers object names as values and mutually dependent methods. He Jifeng is a senior research-fellow of UNU/IIST. He is also a professor of computer science at the Software Engineering Institute of East China Normal University. His research interests include the theories of programming languages, formal methods for safety-critical systems, parallel and distributed systems, component-oriented computing, co-design techniques for real-time embedded systems. Email: jifeng@iist.unu.edu Liu Zhiming is a research fellow at UNU/IIST, on leave from Department of Mathematics and Computer Science of the University of Leicester, England, where he is a lecturer in computer science. His research interests include theory of computing systems, formal methods for specification, verification and refinement of fault-tolerant, real-time and concurrent systems; and formal techniques for OO development. Email: Z.Liu@mcs.le.ac.uk Li Xiaoshan is an Associate Professor at the University of Macao. His research areas are Interval Temporal Logic, formal specification, verification and simulation of computer systems, formal methods in system design and implementation. Email: fstxsl@umac,mo Copyright c © 2003 by UNU/IIST, He Jifeng, Liu Zhiming and Li Xiaoshan

[1]  Liesbeth M. Dusink,et al.  Role of VDM(++) in the Development of a Real-Time Tracking and Tracing System , 1993, FME.

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

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

[4]  John Daniels,et al.  Designing object systems: object-oriented modelling with Syntropy , 1995 .

[5]  Pierre America,et al.  Designing an Object-Oriented Programming Language with Behavioural Subtyping , 1990, REX Workshop.

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

[7]  David A. Carrington,et al.  Object-Z: An Object-Oriented Extension to Z , 1989, FORTE.

[8]  Emil Sekerinski Class Reenement and Interface Reenement in Object-oriented Programs , 1997 .

[9]  Jin Song Dong,et al.  An object-oriented approach to the semantics of programming languages , 1994 .

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

[11]  Ralph-Johan Back,et al.  Exploring Summation and Product Operators in the Refinement Calculus , 1995, MPC.

[12]  Derek Coleman,et al.  Introducing Objectcharts or How to Use Statecharts in Object-Oriented Design , 1992, IEEE Trans. Software Eng..

[13]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[14]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[15]  Chris Dollin,et al.  Object-oriented development: the fusion method , 1994 .

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

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

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

[19]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.