This is the mail archive of the guile@cygnus.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

A&S Footnote (Re: records)


Here's the text and it's footnote (p199-200, 2nd ed.):

...The multiple-supertypes issue is particularly thorny, since it
means that there is no unique way to "raise" a type in the
hierarchy. Finding the "correct" supertype in which to apply an
operation to an object may involve considerable searching through the
entire type network on the part of a procedure such as
apply-generic. Since there are generally multiple subtypes for a type,
there is a similar problem in coercing a value "down" the type
hierarchy. Dealing with large numbers of interrelated types while
still preserving modularity in the design of large systems is very
difficult, and is an area of much current research. 52


52 This statement, which also appears in the first edition of this
book, is just as true now as it was when we wrote it twelve years
ago. Developing a useful, general framework for expressing the
relations among different types of entities (what philosophers call
"ontology") seems intractably difficult. The main difference between
the confusion that existed ten years ago and the confusion that exists
now is that now a variety of inadequate ontological theories have been
embodied in a plethora of correspondingly inadequate programming
languages. For example, much of the complexity of object-oriented
programming languages --  and the subtle and confusing differences
among contemporary object-oriented languages -- centers on the
treatment of generic operations on interrelated types. Our own
discussion of computational objects in chapter 3 avoids these issues
entirely. Readers familiar with object-oriented programming will
notice that we have much to say in chapter 3 about local state, but we
do not even mention "classes" or "inheritance." In fact, we suspect
that these problems cannot be adequately addressed in terms of
computer-language design alone, without also drawing on work in
knowledge representation and automated reasoning.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]