Results 1 - 10
of
15
Ownership Confinement Ensures Representation Independence for Object-Oriented Programs
, 2002
"... This paper formulates representation independence for classes, in an imperative, object-oriented language with pointers, subclassing and dynamic dispatch, class oriented visibility control, recursive types and methods, and a simple form of module. An instance of a class is considered to implement an ..."
Abstract
-
Cited by 56 (29 self)
- Add to MetaCart
This paper formulates representation independence for classes, in an imperative, object-oriented language with pointers, subclassing and dynamic dispatch, class oriented visibility control, recursive types and methods, and a simple form of module. An instance of a class is considered to implement an abstraction using private fields and so-called representation objects. Encapsulation of representation objects is expressed by a restriction, called confinement, on aliasing. Representation independence is proved for programs satisfying the confinement condition. A static analysis is given for confinement that accepts common designs such as the observer and factory patterns. The formalization takes into account not only the usual interface between a client and a class that provides an abstraction but also the interface (often called "protected") between the class and its subclasses
rCOS: A refinement calculus for object systems
- Theoretical Computer Science
, 2005
"... This article presents a mathematical characterization of object-oriented concepts by defining an observation-oriented semantics for a relational objectoriented language with a rich variety of features including subtypes, visibility, inheritance, type casting, dynamic binding and polymorphism. The la ..."
Abstract
-
Cited by 27 (10 self)
- Add to MetaCart
This article presents a mathematical characterization of object-oriented concepts by defining an observation-oriented semantics for a relational objectoriented language with a rich variety of features including subtypes, visibility, inheritance, type casting, dynamic binding and polymorphism. The language is expressive enough for the specification of object-oriented designs and programs. We also propose a calculus based on this model to support both structural and behavioral refinement of object-oriented designs. We take the approach of the development of the design calculus based on the standard predicate logic in Hoare and He’s Unifying Theories of Programming (UTP). We also consider object reference in terms of object identity as values and mutually dependent methods.
A Refinement Algebra for Object-Oriented Programming
, 2003
"... In this article we introduce a comprehensive set of algebraic laws for rool, a language similar to sequential Java but with a copy semantics. We present a few laws of commands, but focus on the object-oriented features of the language. We show that this set of laws is complete in the sense that ..."
Abstract
-
Cited by 16 (3 self)
- Add to MetaCart
In this article we introduce a comprehensive set of algebraic laws for rool, a language similar to sequential Java but with a copy semantics. We present a few laws of commands, but focus on the object-oriented features of the language. We show that this set of laws is complete in the sense that it is sufficient to reduce an arbitrary rool program to a normal form expressed in a restricted subset of the rool operators. We also
Formal and Use-Case Driven Requirement Analysis in UML
, 2001
"... We have recently proposed a formalization of the use of UML in requirement analysis. This paper applies that formalization to a library system as a case study. We intend to show how the approach supports a use case-driven, step-wised and incremental development in building models for requirement ana ..."
Abstract
-
Cited by 15 (7 self)
- Add to MetaCart
We have recently proposed a formalization of the use of UML in requirement analysis. This paper applies that formalization to a library system as a case study. We intend to show how the approach supports a use case-driven, step-wised and incremental development in building models for requirement analysis. The actual process of building the models shows the importance and feasibility of the formalization itself.
A relational model for object-oriented designs
- In Pro. APLAS’2004, LNCS 3302
, 2004
"... Abstract. This paper develops a mathematical characterisation of object-oriented concepts by defining an observation-oriented semantics for an object-oriented language (OOL) with a rich variety of features including subtypes, visibility, inheritance, dynamic binding and polymorphism. The language is ..."
Abstract
-
Cited by 13 (6 self)
- Add to MetaCart
Abstract. This paper develops a mathematical characterisation of object-oriented concepts by defining an observation-oriented semantics for an object-oriented language (OOL) with a rich variety of features including subtypes, visibility, inheritance, dynamic binding and polymorphism. The language is expressive enough for the specification of object-oriented designs and programs. We also propose a calculus based on this model to support both structural and behavioural refinement of object-oriented designs. We take the approach of the development of the design calculus based on the standard predicate logic in Hoare and He’s Unifying Theories of Programming (UTP). We also consider object reference in terms of object identity as values and mutually dependent methods.
A Weakest Precondition Semantics for Refinement of Object-Oriented Programs
, 2000
"... 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. Su ..."
Abstract
-
Cited by 11 (2 self)
- Add to MetaCart
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 towards a refinement calculus.
Soundness of Data Refinement for a Higher Order Imperative Language
, 1999
"... Using a set-theoretic model of predicate transformers and ordered data types, we give a semantics for an Oberon-like higher order imperative language with record subtyping and procedure-type variables and parameters. Data refinement is shown to be sound for this language: It implies algorithmic refi ..."
Abstract
-
Cited by 9 (4 self)
- Add to MetaCart
Using a set-theoretic model of predicate transformers and ordered data types, we give a semantics for an Oberon-like higher order imperative language with record subtyping and procedure-type variables and parameters. Data refinement is shown to be sound for this language: It implies algorithmic refinement when suitably localized. And all constructs are shown to preserve simulation, so data refinement can be carried out piecewise.
A Relational Model for Object-Oriented Programming
- of Maths and Computer Science, the Univ. of Leicester
, 2001
"... This report presents a semantics for an object-oriented language with classes, visibility, dynamic binding, mutual recursive methods and recursion. Our semantic framework identifies both class declarations and commands as designs. All the programming constructs of our language, such as assignment, c ..."
Abstract
-
Cited by 8 (5 self)
- Add to MetaCart
This report presents a semantics for an object-oriented language with classes, visibility, dynamic binding, mutual recursive methods and recursion. Our semantic framework identifies both class declarations and commands as designs. All the programming constructs of our language, such as assignment, conditional, composition and recursion, are defined in the exactly same way as their counterparts in the imperative programming languages. This makes the approach more accessible to users who are already familiar with imperative program design and also enables the use of existing tools and methods of verification and refinement developed for these languages. Furthermore, the algebraic laws developed for the imperative languages remain applicable in designing object-oriented programs.
Modelling Object-oriented Programming with Reference Type and Dynamic Binding
, 2003
"... Training Centre of the United Nations University (UNU). It is based in Macau, and was founded in ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Training Centre of the United Nations University (UNU). It is based in Macau, and was founded in
Basic Laws of ROOL: an Object-Oriented Language
, 2000
"... In this article we introduce some basic algebraic laws of rool, an object-oriented language similar to Java, but with a copy rather than a reference semantics. One immediate application of the basic laws is the derivation of more elaborate laws which formalize object-oriented design practices. We di ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
In this article we introduce some basic algebraic laws of rool, an object-oriented language similar to Java, but with a copy rather than a reference semantics. One immediate application of the basic laws is the derivation of more elaborate laws which formalize object-oriented design practices. We discuss further applications of the basic laws and the importance of proving their soundness with respect to an independent semantics.

