Aspects: extending objects to support multiple, independent roles
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Generic information modeling concepts: a reusable component library
TOOLS 4 Proceedings of the fourth international conference on Technology of object-oriented languages and systems
Information modeling: an object-oriented approach
Information modeling: an object-oriented approach
Subject-oriented programming: a critique of pure objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Using dynamic classes and role classes to model object migration
Theory and Practice of Object Systems - Special issue on the 1994 European Conference of Object Oriented Programming
UML distilled: applying the standard object modeling language
UML distilled: applying the standard object modeling language
Object-oriented methods (UML ed., 2nd ed.): a foundation
Object-oriented methods (UML ed., 2nd ed.): a foundation
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Predicate Dispatching: A Unified Theory of Dispatch
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
First-class state change in plaid
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
We introduce a concept of multiple dynamic classification, a powerful generalization of single-inheritance OO, and a language Ferret which implements it. Multiple classification allows Male, Female, and Married to be subclasses of Person, arranged so that a single Person object may be both Male and Married, but may not be both Male and Female. Dynamic classification allows classes to change: a Person may acquire or lose Married status. The subclasses are true subclasses. Married carries fields (e.g., spouse) which are specific to married people. Methods may be defined on classes, and even on Boolean combinations of class: Male&Married. Ferret provides a generalization of superclass calls, so that the methods for Male&Married can be based on those for Male and Married, without losing other classifications like Employee. Ferret has mutators, analogous to constructors but applicable when objects change class. The resulting language is powerful and highly expressive.