Open types and bidirectional relationships as an alternative to classes and inheritance

3Citations
Citations of this article
8Readers
Mendeley users who have this article in their library.

Abstract

Open types are presented as a simple yet powerful data model for statically typed procedural and object-oriented programming languages, that overcomes the limitations of the traditional record-oriented model. The basic idea is to separate type definitions from the definitions of their attributes in order to allow incremental definitions of the latter. Furthermore, bidirectional relationships are introduced as pairs of mutually inverse attributes whose values will be kept consistent automatically. Finally, anonymous and automatic attributes are presented as a simple extension of attributes that unifies the concepts of aggregation, inheritance (including subtype polymorphism), and user-defined type conversions. Since open types do not possess methods in the object-oriented sense, global virtual functions are used as an alternative and more flexible means to define behaviour, while modules are employed to achieve information hiding and type-safe separate compilation. The basic implementation ideas of open types as a language extension for C++ are described.

Cite

CITATION STYLE

APA

Heinlein, C. (2007). Open types and bidirectional relationships as an alternative to classes and inheritance. Journal of Object Technology, 6(3), 101–151. https://doi.org/10.5381/jot.2007.6.3.a3

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free