• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations

Relationships for object-oriented programming languages, (2007)

by A Wren
Add To MetaCart

Tools

Sorted by:
Results 1 - 4 of 4

Verifying Multi-object Invariants with Relationships

by Stephanie Balzer, Thomas R. Gross
"... Abstract. Relationships capture the interplay between classes in object-oriented programs, and various extensions of object-oriented programming languages allow the programmer to explicitly express relationships. This paper discusses how relationships facilitate the verification of multi-object inva ..."
Abstract - Cited by 3 (1 self) - Add to MetaCart
Abstract. Relationships capture the interplay between classes in object-oriented programs, and various extensions of object-oriented programming languages allow the programmer to explicitly express relationships. This paper discusses how relationships facilitate the verification of multi-object invariants. We develop a visible states verification technique for Rumer, a relationship-based programming language, and demonstrate our technique on the Composite pattern. The verification technique leverages the “Matryoshka Principle ” embodied in the Rumer language: relationships impose a stratification of classes and relationships (with corresponding restrictions on writes to fields, the expression of invariants, and method invocations). The Matryoshka Principle guarantees the absence of transitive call-backs and restores a visible states semantics for multi-object invariants. As a consequence, the modular verification of multi-object invariants is possible. 1

Selective Ownership: Combining Object and Type Hierarchies for Flexible Sharing

by Stephanie Balzer, Thomas R. Gross, Peter Müller
"... Most ownership systems enforce a tree topology on a program’s heap. The tree topology facilitates many aspects of programming such as thread synchronization, memory management, and program verification. Ownership-based verification techniques leverage the tree topology of an ownership system (and he ..."
Abstract - Cited by 1 (0 self) - Add to MetaCart
Most ownership systems enforce a tree topology on a program’s heap. The tree topology facilitates many aspects of programming such as thread synchronization, memory management, and program verification. Ownership-based verification techniques leverage the tree topology of an ownership system (and hence the fact that there exists a single owner) to restore sound modular reasoning about invariants over owned objects. However, these techniques in general restrict sharing by limiting modifying access to an owned object to the object’s owner and to other objects in that owner’s ownership tree. In this paper, we introduce selective ownership, a less rigid form of ownership. The key idea is to structure the heap in two ways, by defining an order on a program’s type declarations and by imposing ownership on selected objects. The order on type declarations results in a stratified program heap but permits shared, modifying access to instances further “down ” in the heap topology. By superimposing object ownership on selected objects in the heap, programmers can carve out partial sub-trees in the heap topology where the objects are owned. We show how selective ownership enables the modular verification of invariants over heap topologies that subsume shared, modifiable sub-structures. Selective ownership has been elaborated for our programming language Rumer, a programming language with first-class relationships, which naturally give rise to an ordering on type declarations.
(Show Context)

Citation Context

...claration and verification of invariants on owned objects. We exemplify selective ownership in the context of Rumer [4, 5], a programming language we have designed to embody first-class relationships =-=[1, 4, 6, 10, 33, 39, 42, 44]-=-. In Rumer, first-class relationships naturally define an order on type declarations, making Rumer a natural fit as a host language for selective ownership. This paper extends our earlier work [5], in...

Modular Reasoning about Invariants over Shared State with Interposed Data Members

by Stephanie Balzer, Thomas R. Gross
"... Reasoning about object-oriented programs is difficult since such programs usually involve aliasing, and it is not easy to identify the ways objects can relate to each other and thus to confine a program’s heap. In this paper, we address this problem in the context of a relationship-based programming ..."
Abstract - Cited by 1 (1 self) - Add to MetaCart
Reasoning about object-oriented programs is difficult since such programs usually involve aliasing, and it is not easy to identify the ways objects can relate to each other and thus to confine a program’s heap. In this paper, we address this problem in the context of a relationship-based programming language. In relationship-based programming languages, relationships are first-class citizens and allow a precise description of inter-object relationships. Relationships enforce a modularization discipline that is closer to the natural modularity inherent to many problem domains and that yields, as a result, program heaps that are DAGs. We further describe a mechanism, member interposition, that leverages the new modularization discipline and supports encapsulation of fields of shared objects. We have implemented the described modularization discipline and the mechanism of member interposition in the context of Rumer, a relationship-based programming language with support for contract specifications. We discuss the implications of member interposition for the modular verification of object invariants with an example. Relationships and interposed members provide an alternative to ownership type systems.
(Show Context)

Citation Context

...e language. In this paper, we investigate an alternative approach: we introduce a simple sequential programming language, Rumer, which is a representative of a relationship-based programming language =-=[8, 23, 25, 26, 28]-=-. Relationship-based programming languages offer abstractions similar to the ones found in conceptual modelling languages (e.g., Unified Modelling Language (UML) [16], Entity-Relationship Diagrams [12...

Generic Unified Modelling Process for Developing Semantically Rich, Dynamic and Temporal Models

by Hubert Grzybek , Stephen R Gulliver
"... Abstract Models play a vital role in supporting a range of activities in numerous domains. We rely on models to support the design, visualisation, analysis and representation of parts of the world around us, and as such significant research effort has been invested into numerous areas of modelling; ..."
Abstract - Add to MetaCart
Abstract Models play a vital role in supporting a range of activities in numerous domains. We rely on models to support the design, visualisation, analysis and representation of parts of the world around us, and as such significant research effort has been invested into numerous areas of modelling; including support for model semantics, dynamic states and behaviour, temporal data storage and visualisation. Whilst these efforts have increased our capabilities and allowed us to create increasingly powerful software-based models, the process of developing models, supporting tools and /or data structures remains difficult, expensive and error-prone. In this paper we define from literature the key factors in assessing a model"s quality and usefulness: semantic richness, support for dynamic states and object behaviour, temporal data storage and visualisation. We also identify a number of shortcomings in both existing modelling standards and model development processes and propose a unified generic process to guide users through the development of semantically rich, dynamic and temporal models. Introduction Models are commonly defined as a representation of aspects of the real world, developed from a certain perspective, used in specific purpose [models in education paper] and perceived by a defined actor
(Show Context)

Citation Context

...eta-ontology (an ontology that uses a higher level of abstraction in order to describe a wide range of domains) that contains entities, attributes and relationships. This fits well with existing modelling standards that focus on rich semantic, such as the IFC object model, which defined a set of objects with associated attributes and relationships. Whilst we agree with current ontology and conceptual data model design guidelines, we find them to be insufficiently detailed, yet overly complex, to be successfully applied by novices. Basic guidelines, such as those provided by Noy and McGuinness [8], describes the ontology development process in terms of analysing the language used in the domain and picking out the important concepts, the characteristics that are commonly associated with the concepts and the relationships that may exist between different concept types. The relationships may either be hierarchical, i.e specifying that a particular concept is either a specialisation (if it inherits the general concept‟s properties and adds further properties or restrictions of its own) or a generalisation of another concept or the identification of relationships between concepts that exist...

Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University