DocumentCode :
1051741
Title :
Reflections on metaprogramming
Author :
Lee, Arthur H. ; Zachary, Joseph L.
Author_Institution :
Dept. of Comput. Sci., Korea Univ., Seoul, South Korea
Volume :
21
Issue :
11
fYear :
1995
fDate :
11/1/1995 12:00:00 AM
Firstpage :
883
Lastpage :
893
Abstract :
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 between 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
Keywords :
LISP; data encapsulation; object-oriented languages; object-oriented programming; software performance evaluation; Common Lisp Object System; default classes; encapsulation; language semantics; metaobject protocol; metaprogramming; object oriented programming; object-oriented languages; performance measurements; performance penalty; persistence; reflection; Cities and towns; Computer languages; Computer science; Design automation; Electronic switching systems; Helium; Object oriented programming; Programming profession; Protocols; Reflection;
fLanguage :
English
Journal_Title :
Software Engineering, IEEE Transactions on
Publisher :
ieee
ISSN :
0098-5589
Type :
jour
DOI :
10.1109/32.473217
Filename :
473217
Link To Document :
بازگشت