[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: dynamic inheritance -- icons
The problem of class-explosion posed by computational domains that inherently
require a large or unbounded number of classes has been addressed in Smalltalk
without resorting to multiple inheritance. The work that I'm thinking of is
described in a paper entitled "A Smalltalk System for Algebraic Manipulation"
by S. Kamal Abdali, Guy W. Cherry, and Neil Soiffer. Using classes to model
abstract algebra in the obvious way poses the class-explosion problem since,
for example, there are potentially an infinite number of algebraic structures
to be modeled (i.e., there are an infinite number of groups, rings, etc). I
don't know whether this approach is applicable to the problem that you
describe, but you might find the paper interesting reading. To give you an idea
of their approach, I've reproduced the abstract below:
Abstract:
"This paper describes the design of an algebra system Views implemented in
Smalltalk. Views contains facilities for dynamic creation and manipulation of
computational domains, for viewing these domains as various categories such
groups rings, or fields, and for expressing algorithms generically at the level
of categories. The design of Views has resulted in the addition of some new
abstractions to Smalltalk that are quite useful in their own right.
Parameterized classes provide a means for run-time creation of new classes that
exihibit generally very similar behavior, differing only in minor ways that can
be described by different instantiations of certain parameters. Categories
allow the abstraction of the common behavior of classes that derives from the
class objects and operations satisfying certain laws independently of the
implementation of those objects and operations. Views allow the run-time
association of classes with categories (and of categories with other
categories), facilitating the use of code written for categories with quite
different interpretations of operations. Together, categories and views provide
an additional mechanism for code sharing that is richer than both single and
multiple ineritance. The paper gives algebraic as well as non-algebraic
examples of the above-mentioned features."
Frank