Results 1 -
2 of
2
Feature-Oriented Programming: A Fresh Look At Objects
, 1997
"... We propose a new model for flexible composition of objects from a set of features. Features are similar to (abstract) subclasses, but only provide the core functionality of a (sub)class. Overwriting other methods is viewed as resolving feature interactions and is specifi separately for two featu ..."
Abstract
-
Cited by 119 (7 self)
- Add to MetaCart
We propose a new model for flexible composition of objects from a set of features. Features are similar to (abstract) subclasses, but only provide the core functionality of a (sub)class. Overwriting other methods is viewed as resolving feature interactions and is specifi separately for two features at a time. This programming model allows to compose features (almost) freely in a waywhich generalizes inheritance and aggregation. For a set of n features, an exponential number of different feature combinations is possible, assuming a quadratic number of interaction resolutions. We present the feature model as an extension of Java and givetwo translations to Java, one via inheritance and the other via aggregation. We further discuss parameterized features, which work nicely with our feature model and can be translated into Pizza, an extension of Java.
Functional object-oriented programming with object-gofer
"... Abstract. Object-Gofer is a small, practical extension of the functional programming language Gofer incorporating the following ideas from the object-oriented community: objects and toplevel classes, subtype and implementation inheritance, method redefinition, late binding and self type specializati ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. Object-Gofer is a small, practical extension of the functional programming language Gofer incorporating the following ideas from the object-oriented community: objects and toplevel classes, subtype and implementation inheritance, method redefinition, late binding and self type specialization. The semantics of Object-Gofer is defined by translation into pure Gofer. Although this restricts the design space, it turns out that using a suitable framework of monads, higher-order polymorphism, and overloading, objects smooth well with functions. 1 Case for Functional Object-oriented Programming Object-oriented concepts are ubiquitous in programming. Objects may model real life entities, or may represent system artifacts like stacks. Objects provide a way to structure a system and to control the computation. The most characteristic feature of object-oriented programming is inheritance, which allows new classes to be defined as increments of existing ones. Inheritance comes with late binding, inclusion polymorphism (subtyping), method redefinition, and method

