PS-ALGOL implementations: applications in persistent object-oriented programming
PS-ALGOL implementations: applications in persistent object-oriented programming
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
PCLOS: stress testing CLOS experiencing the metaobject protocol
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
The programming language jigsaw: mixins, modularity and multiple inheritance
The programming language jigsaw: mixins, modularity and multiple inheritance
User-level language crafting: introducing the CLOS metaobject protocol
Object-oriented programming
The persistent object system metastore: persistence via metaprograming
The persistent object system metastore: persistence via metaprograming
Syntax and semantics of a persistent Common Lisp
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
IEEE Std 1178-1990, IEEE Standard for the Scheme Programming Language
IEEE Std 1178-1990, IEEE Standard for the Scheme Programming Language
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
Making smalltalk a database system
SIGMOD '84 Proceedings of the 1984 ACM SIGMOD international conference on Management of data
Reflection and semantics in LISP
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
An Interpreter for Extended Lambda Calculus
An Interpreter for Extended Lambda Calculus
Adding Support for Persistence to CLOS via Its Metaobject Protocol
Lisp and Symbolic Computation
Research Frontiers in Object Technology
Information Systems Frontiers
Hi-index | 0.00 |
By encapsulating aspects of language semantics within a set of default classes and allowing the programmer to derive new versions, object-oriented languages whose semantics can be tailored to the needs of individual programmers have been provided. The degree to which such languages are simultaneously flexible and efficient is an open question. We describe our experience with using this technique to incorporate transparent support for persistence into the Common Lisp Object System via its metaobject protocol, an open implementation based on reflection. For many aspects of our implementation the metaobject protocol was perfectly suitable. In other cases we had to choose among extending the protocol, requiring the application programmer to employ special idioms, and tolerating a large performance penalty. Based on our experience we evaluate the metaobject protocol, propose some improvements and extensions, and present performance measurements that reveal the need for improved language implementation techniques.