LISP and Symbolic Computation, 10(1)39-60

Adding Support for Persistence to CLOS via Its Metaobject Protocol

Arthur H. Lee, Department of Computer Science, Korea University, Seoul 136-701 Korea
Joseph L. Zachary, Department of Computer Science, University of Utah, Salt Lake City, UT 84112 USA

Abstract: Language-level support for object persistence frees programmers from having to confront a broad class of database issues from within their applications. By virtue of its metaobject protocol, CLOS is a language whose semantics can be tailored by individual programmers. We used the metaobject protocol to extend CLOS with support for object persistence. Our goal was to obtain a version of CLOS with persistence to which we could easily port a commercial geometric CAD modeling system. We describe the design and implementation of our persistence extension and highlight the strengths and weaknesses exhibited by the CLOS metaobject protocol during our experiment. For many aspects of the implementation we found that the metaobject protocol was ideal. In other cases we had to choose among paying a large performance penalty, extending the protocol, and bypassing the protocol by modifying the language implementation directly.

Keywords: Open Implementation, Metaobject Protocol, Object Persistence, CLOS

This article can be downloaded [here].
[picture of journal cover]

June 2003 - hosc@brics.dk