Results 1 -
7 of
7
A Denotational Semantics of Inheritance
, 1989
"... This thesis develops a semantic model of inheritance and investigates its applications for the analysis and design of programming languages. Inheritance is a mechanism for incremental programming in the presence of self-reference. This interpretation of inheritance is formalized using traditional te ..."
Abstract
-
Cited by 137 (6 self)
- Add to MetaCart
This thesis develops a semantic model of inheritance and investigates its applications for the analysis and design of programming languages. Inheritance is a mechanism for incremental programming in the presence of self-reference. This interpretation of inheritance is formalized using traditional techniques of fixed-point theory, resulting in a compositional model of inheritance that is directly applicable to object-oriented languages. Novel applications of inheritance revealed by the model are illustrated to show that inheritance has wider significance beyond object-oriented class inheritance. Constraints induced by self-reference and inheritance are investigated using type theory and yield a formal characterization of abstract classes and a demonstration that the subtype relation is a direct consequence of the basic mechanism of inheritance. The model is proven equivalent to the operational semantics of inheritance embodied by the interpreters of object-oriented languages like Smalltalk. Concise descriptions of inheritance behavior in several object-oriented languages, including Smalltalk, Beta, Simula, and Flavors, are presented in a common framework that facilitates direct comparison of their features.
Object Ownership and Containment
, 2001
"... Object-oriented programming relies on inter-object aliases to implement data structures and other abstractions. Objects have mutable state, but it is when mutable state interacts with aliasing that problems arise. Through aliasing an object's state can be changed without the object being aware of t ..."
Abstract
-
Cited by 112 (17 self)
- Add to MetaCart
Object-oriented programming relies on inter-object aliases to implement data structures and other abstractions. Objects have mutable state, but it is when mutable state interacts with aliasing that problems arise. Through aliasing an object's state can be changed without the object being aware of the changes, potentially violating the object's invariants. This problem is fundamentally unresolvable. Many idioms such as the Observer design pattern rely on it. Hence aliasing cannot be eliminated from object-oriented programming, it can only be managed. Various proposals have appeared in the literature addressing the issue of alias management. The most promising are based on alias encapsulation, which limits access to objects to within certain well-defined boundaries. Our approach called ownership types falls into this category. An object can specify the objects it owns, called its representation, and which objects can access its representation. A type system protects the representation by enforcing a well-defined containment invariant. Our approach is a formal one. Ownership types are cast as a type system using an minor extension to Abadi and Cardelli's object calculus with subtyping. With this formalisation we prove the soundness of our ownership types system and demonstrate that well-typed programs satisfy the containment invariant. In addition, we also provide a firm grounding to enable ownership types to be safely added to an objectoriented programming language with inheritance, subtyping, and nested classes, as well as offering a sound basis for future work. Our type system can model aggregate objects with multiple interface objects sharing representation and friendly functions which access multiple objects' private representations, among other examples, thus over...
A Natural Semantics for Eiffel Dynamic Binding
, 1996
"... This article formally defines Eiffel dynamic binding in presence of... ..."
Abstract
-
Cited by 17 (1 self)
- Add to MetaCart
This article formally defines Eiffel dynamic binding in presence of...
An Algebraic Compositional Semantics of an Object Oriented Notation with Concurrency
- Foundations of Software Technology and Theoretical Computer Science (Proc. of the Ninth conference
, 1989
"... This paper presents an algebraic compositional semantics for a schema of an object-oriented syntax which models many existing features as class hierarchies, polymorphism and concurrency, using a pattern which could be applied to different concrete languages (in what follows O-O stands for "object-or ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This paper presents an algebraic compositional semantics for a schema of an object-oriented syntax which models many existing features as class hierarchies, polymorphism and concurrency, using a pattern which could be applied to different concrete languages (in what follows O-O stands for "object-oriented"). The semantics is defined in a classical denotational style, ie giving an abstract syntax, the semantic domains and the interpretation of the syntactic operators. From this point of view the paper yields a formalization of the model which underlies an O-O notation as done for example in [Wo] for Smalltalk-80. However our approach is different from the traditional one for at least two reasons. First, the given semantics is algebraic in the sense that the value denoted by a class (the basic language unit in an O-O notation) is in general a class of algebras described by an algebraic specification. In particular, we use the algebraic specification language ASL ([Wi]). This approach allows to model in a natural way some typical O-O features related to combining classes. A class combinator (eg inheritance) is semantically interpreted in this framework as a function which handles classes of algebras or, in an equivalent way, since we use an algebraic specification language, as a specification combinator (see [Wi] for foundations). Moreover, our schema of semantic definition allows to model also concurrent features of the O-O language if any, by underlying an approach to concurrency based on algebraic transition systems (see for example [AR] for foundations and [AGRZ] for a recent survey with already some hints on the treatment of objects). In this respect our aim is not to present a particular language but to give a general framework in which different concurrent features,...
Algebraic System Specification and Development: Survey and Annotated Bibliography - Second Edition -
, 1997
"... Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.5.4 Special Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.6 Semantics of Programming Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.6.1 Semantics of Ada . . . ..."
Abstract
- Add to MetaCart
Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.5.4 Special Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.6 Semantics of Programming Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.6.1 Semantics of Ada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.6.2 Action Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.7 Specification Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.7.1 Early Algebraic Specification Languages . . . . . . . . . . . . . . . . . . . . . . . . 53 4.7.2 Recent Algebraic Specification Languages . . . . . . . . . . . . . . . . . . . . . . . 55 4.7.3 The Common Framework Initiative. . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5 Methodology 57 5.1 Development Phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.1.1 Applica...
`Self'-Conscious Objects in Object-Z
, 1997
"... s and compressed postscript files are available via http://svrc.it.uq.edu.au `self'-Conscious Objects in Object-Z Alena Griffiths Abstract Within the field of object-oriented type theory, much attention has been devoted to the notion of self and Self-types. In contrast, relatively little att ..."
Abstract
- Add to MetaCart
s and compressed postscript files are available via http://svrc.it.uq.edu.au `self'-Conscious Objects in Object-Z Alena Griffiths Abstract Within the field of object-oriented type theory, much attention has been devoted to the notion of self and Self-types. In contrast, relatively little attention has been paid to this topic in studies on object-oriented specification language semantics. In the context of language semantics, the notion of self poses two problems. Firstly, it involves an awareness by an object of its own identity, and hence a capacity for self-referential method invocations. Secondly, the usual reference model for object identity maps object identities to object values. This means that an object's identity is not normally considered to be a part of its value, and so a value for self is not normally in scope. The way that a semantics resolves the scope problem can affect one's ability to use the semantics to reason about an object independently of its e...
Mario Wolczko Semantics of Object-Oriented Languages
"... Object-oriented programming is becoming an important technique in the construction of large software systems. Compelling arguments, like reduced maintenance costs, are advanced to encourage its use. To maximise the advantages of such methods, object-oriented programming languages need to be welldesi ..."
Abstract
- Add to MetaCart
Object-oriented programming is becoming an important technique in the construction of large software systems. Compelling arguments, like reduced maintenance costs, are advanced to encourage its use. To maximise the advantages of such methods, object-oriented programming languages need to be welldesigned. When selecting the main features of a programming language, or choosing between alternative designs, formal methods of semantic analysis are invaluable. To date little attention has been given to the formal description of object-oriented languages. This thesis introduces a framework for describing the semantics of object-oriented languages. To characterise the important features of object-oriented languages, an idealised object-oriented language is described and its semantics specified formally, using the denotational style of VDM. Design alternatives are explored in the same way. Several general principles of object-oriented language design are introduced, and the alternatives review...

