LISP and Symbolic Computation, 6(1/2)119-138
Balancing the EULISP Metaobject Protocol
Harry Bretthauer, German National Research Center for Computer Science (GMD), P.O. Box 1316, W-5205 Sankt Augustin 1, FRG
Jürgen Kopp, German National Research Center for Computer Science (GMD), P.O. Box 1316, W-5205 Sankt Augustin 1, FRG
Harley Davis, ILOG SA., 2 avenue Galli'eni, 94253 Gentilly, France
Keith Playford, School of Mathematical Sciences, University of Bath, Bath BA2 7AY, UK
Abstract: The challenge for the metaobject protocol designer is
to balance the conflicting demands of efficiency, simplicity, and
extensibility. It is impossible to know all desired extensions in
advance; some of them will require greater functionality, while others
require greater efficiency. In addition, the protocol itself must be
sufficiently simple that it can be fully documented and understood by
those who need to use it.
This paper presents the framework of a metaobject protocol for EULISP
which provides expressiveness by a multileveled protocol and achieves
efficiency by static semantics for predefined metaobjects and
modularizing their operations. The EULISP module system supports
global optimizations of metaobject applications. The metaobject system
itself is structured into modules, taking into account the
consequences for the compiler. It provides introspective operations as
well as extension interfaces for various functionalities, including
new inheritance, allocation, and slot access semantics.
While the overall goals and functionality are close to those of
Kiczales et al. [9], the approach shows different emphases. As a
result, time and space efficiency as well as robustness have been
improved.
Keywords: object-oriented programming, language design
|
[local copy]
|
|