Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Procedures as persistent data objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Development of an object-oriented DBMS
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Semantics and implementation of schema evolution in object-oriented databases
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
A pragmatic system for shared persistent objects
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Metaclasses are first class: The ObjVlisp Model
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Types and persistence in database programming languages
ACM Computing Surveys (CSUR)
PCLOS: a flexible implementation of CLOS persistence
on ECOOP '88 (European Conference on Object-Oriented Programming)
A programmer's guide to object-oriented programming in Common LISP
A programmer's guide to object-oriented programming in Common LISP
Reliable servers: design and implementation in avalon/C++
DPDS '88 Proceedings of the first international symposium on Databases in parallel and distributed systems
The common Lisp object system metaobject kernel: a status report
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Programming with explicit metaclasses in Smalltalk-80
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
OODS '86 Proceedings on the 1986 international workshop on Object-oriented database systems
Making smalltalk a database system
SIGMOD '84 Proceedings of the 1984 ACM SIGMOD international conference on Management of data
Integrating legacy systems with modern corporate applications
Communications of the ACM
Adding Support for Persistence to CLOS via Its Metaobject Protocol
Lisp and Symbolic Computation
A Metaobject Architecture for Fault-Tolerant Distributed Systems: The FRIENDS Approach
IEEE Transactions on Computers
Reflections on Metaprogramming
IEEE Transactions on Software Engineering
Implementing Fault-Tolerant Applications Using Reflective Object-Oriented Programming
FTCS '95 Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing
An overview of pwgl, a visual programming environment for music
Computer Music Journal
Context-oriented software transactional memory in common lisp
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Flexible object layouts: enabling lightweight language extensions by intercepting slot access
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.02 |
This paper demonstrates that the CLOS metaobject protocol approach to defining and implementing an object model is very powerful. CLOS is an object-oriented language that is based on Common Lisp and is in the process of being standardized. Implementations of CLOS are themselves object-oriented with all major building blocks of the language being instances of system classes. A metaobject protocol provides a framework for CLOS implementations by specifying the hierarchy of these classes and the order and contents of the communication among their instances. This design has made CLOS both flexible and portable, two design goals that traditionally conflict. In support of this suggestion we present a detailed account of how we added object persistence to CLOS without modifying any of the language's implementation code.