Results 1 -
7 of
7
Design of a Class Library for Association Relationships
- In LCSD’07, Montréal
, 2007
"... Association is an important relationship that is supported in both UML and entity relationship database modeling tools. However, there is no language or library support in current object-oriented languages for implementing an association relationship. Instead, a complex implementation using referenc ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
Association is an important relationship that is supported in both UML and entity relationship database modeling tools. However, there is no language or library support in current object-oriented languages for implementing an association relationship. Instead, a complex implementation using references or collections of refer-ences must be handcrafted and laboriously maintained each time an association relationship is needed. In this paper, we develop an approach to supporting the association relationship through the design of a reusable class library that hides most of the complexity and guarantees that the consistency of the relationship is main-tained automatically. Our current library implementation in C# draws on generic types with runtime type instantiation, runtime reflection on type parameters, annotations on classes, and runtime code generation. This set of language features seems to be neces-sary to provide effective support for association relationships. 1
First class relationships for OO languages
- In Proceedings of the 6th International Workshop on Multiparadigm Programming with Object-Oriented Languages (MPOOL
, 2008
"... Abstract. Relationships have been an essential component of OO design since the 90s and, although several groups have attempted to rectify this, mainstream OO languages still do not support first-class relationships. This requires programmers to implement relationships in an ad-hoc fashion which res ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
(Show Context)
Abstract. Relationships have been an essential component of OO design since the 90s and, although several groups have attempted to rectify this, mainstream OO languages still do not support first-class relationships. This requires programmers to implement relationships in an ad-hoc fashion which results in unnecessarily complex code. We have developed a new model for OO languages which presents relationships as the dominant mechanism for defining object-oriented behaviour. We believe that a language based on this model could bring the benefits of relationships to mainstream languages and allow better integration between OO systems and other paradigms such as relational databases. 1
First-Class Relationships in Object Oriented Programs
"... Relationships have been an essential component of OO design since the 90s, yet mainstream OO languages still do not support first-class relationships. Most programs implement relationships in an ad-hoc fashion which results in unnecessarily complex code. We examine the requirements for a good first- ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
(Show Context)
Relationships have been an essential component of OO design since the 90s, yet mainstream OO languages still do not support first-class relationships. Most programs implement relationships in an ad-hoc fashion which results in unnecessarily complex code. We examine the requirements for a good first-class relationship abstraction and compare this with existing work. These requirements serve both as a specification and a progress metric for adding first-class relationships to OO languages.
Implementing First Class Relationships in Java
- In Proceedings Workshop on Relationships and Associations in Object-Oriented Languages (RAOOL) at OOPSLA
, 2008
"... Relationships have been an essential component of OO de-sign since the 90s but OO languages still do not support first-class relationships. Hence, programmers must implement re-lationships in an ad-hoc fashion which results in unnecessar-ily complex code. We have developed a new model for rela-tions ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
(Show Context)
Relationships have been an essential component of OO de-sign since the 90s but OO languages still do not support first-class relationships. Hence, programmers must implement re-lationships in an ad-hoc fashion which results in unnecessar-ily complex code. We have developed a new model for rela-tionships in OO which distinguishes tuples and relationships (mutable sets of tuples) and supports both as first-class con-structs. This paper describes the design of a library for Java which provides this model. 1.
Design of a Class Library for Association Relationships
"... Association is an important relationship that is supported in both UML and entity relationship database modeling tools. However, there is no language or library support in current object-oriented languages for implementing an association relationship. Instead, a complex implementation using referenc ..."
Abstract
- Add to MetaCart
Association is an important relationship that is supported in both UML and entity relationship database modeling tools. However, there is no language or library support in current object-oriented languages for implementing an association relationship. Instead, a complex implementation using references or collections of references must be handcrafted and laboriously maintained each time an association relationship is needed. In this paper, we develop an approach to supporting the association relationship through the design of a reusable class library that hides most of the complexity and guarantees that the consistency of the relationship is maintained automatically. Our current library implementation in C# draws on generic types with runtime type instantiation, runtime reflection on type parameters, annotations on classes, and runtime code generation. This set of language features seems to be necessary to provide effective support for association relationships. 1
Multitudes of Objects: First Implementation and Case Study for Java
"... Abstract In object-oriented programs, the relationship of an object to many objects is usually implemented using indirection through a collec-tion. This is in contrast to a relationship to one object, which is usually implemented directly. However, using collections for relationships to many objects ..."
Abstract
- Add to MetaCart
(Show Context)
Abstract In object-oriented programs, the relationship of an object to many objects is usually implemented using indirection through a collec-tion. This is in contrast to a relationship to one object, which is usually implemented directly. However, using collections for relationships to many objects does not only mean that accessing the related objects always re-quires accessing the collection first, it also presents a lurking maintenance problem that manifests itself when a relationship needs to be changed from to-one to to-many or vice versa. Continuing our prior work on fixing this problem, we show how we have extended the Java 7 programming language with multiplicities, that is, with expressions that evaluate to a number of objects not wrapped in a container, and report on the experience we have gathered using these multiplicities in a case study. ein Vieles, welches kein Eines ist (a multitude which is not a one) — inspired by Georg Cantor’s conception of a set as “jedes Viele, welches sich als Eines denken läßt”, i.e., any multitude which can be thought of as a one 1
Requirements for Extensible Languages
"... This paper gathers requirements to an extensible programming lan-guage by systematically examining examples used in scientific pa-pers on language extensions and extensible languages. Obviously, such an examination cannot be complete, but nevertheless, clear tendencies manifest themselves, and it is ..."
Abstract
- Add to MetaCart
This paper gathers requirements to an extensible programming lan-guage by systematically examining examples used in scientific pa-pers on language extensions and extensible languages. Obviously, such an examination cannot be complete, but nevertheless, clear tendencies manifest themselves, and it is clear that no single exten-sible language or extension technique has ever tried to cover all re-quirements. The contribution of this paper is a classification of a number of examples from the literature, a classification scheme that clarifies the requirements to extensible languages, and points out new areas of research. It will be discussed to what extent the differ-ent categories can be supported by current object oriented abstrac-tion mechanisms, and what are the requirements to an extensible language to be able to handle each category. 1