Most OOP systems support procedural behavior of objects
either through message-passing (e.g. Smalltalk)
or by generic functions (e.g. CLOS). CLIPS supports
both of these mechanisms, although generic functions are not strictly
part of COOL. A generic function may examine the classes
of its arguments but must still use messages within the bodies
of its methods to manipulate any arguments which are instances
of userdefined classes. Section 9 gives more details on COOL.
The fact that CLIPS supports both mechanisms leads to a confusion
in terminology. In OOP systems which support message-passing only,
the term method is used to denote the different
implementations of a message for different
classes. In systems which support generic functions only, however,
the term method is used to denote the different implementations
of a generic function for different sets of argument restrictions.
To avoid this confusion, the term message-handler
is used to take the place of method in the context
of messages. Thus in CLIPS, message-handlers denote the
different implementations of a message for different classes,
and methodsdenote the different implementations
of a generic function for different sets of argument restrictions.