by Jacques Malenfant, La Chantrerie, Rue Alfred Kastler
ftp://ftp.emn.fr/pub/objet/publications/oopsla95.ps.gz
Add To MetaCart
Abstract:
Reflective programming languages are those where users ' programs are allowed to customize in an organized way the behavior of the language to their own needs. For ten years now, most of the work on reflection revolved around the definition and the implementation of metaobject protocols which express this organization. No methodologies have been proposed for reflective programming per se. This paper proposes a first one aiming at the design of composable metaobjects. Given two independently developed reflective customizations, this methodology proposes principles to be observed in their design such that they can be composed using standard base-level aggregation or specialization. While this paper focuses on a simple MOP and illustrates the methodology on specific examples, this methodology can be generalized to other languages with different MOPs. For instance, we discuss how to adapt it to Clos.
Citations
|
697
|
The Art of Metaobject Protocol
– Kiczales, Rivieres, et al.
- 1991
|
|
365
|
Concepts and Experiments in Computational Reflection
– Maes
- 1987
|
|
332
|
W.: Mixin-Based Inheritance
– Bracha, Cook
- 1990
|
|
174
|
Reflection and Semantics in LISP
– Smith
- 1984
|
|
146
|
Concepts and paradigms of object-oriented programming. OOPS Messenger 1:8–87
– Wegner
- 1990
|
|
140
|
Object-Oriented Programming with Flavors
– Moon
- 1986
|
|
113
|
Contracts: Specifying behavioral compositions in object-oriented systems
– Helm, Holland, et al.
- 1990
|
|
109
|
Reflection in an object-oriented concurrent language
– Watanabe, Yonezawa
- 1988
|
|
108
|
Designing an extensible distributed language with a meta-level architecture
– Chiba, Masuda
- 1993
|
|
101
|
Object-Oriented Programming in COMMON LISP: A Programmer's Guide to CLOS
– Keene
- 1989
|
|
100
|
Metaclasses are first class: the ObjVLisp model
– Cointe
- 1987
|
|
81
|
An Object-Oriented LanguageDatabase Integration Model: The Composition Filters Approach
– Aksit, Bergmans, et al.
- 1992
|
|
65
|
Meta-level programming with CodA
– McAffer
- 1995
|
|
60
|
The Common Lisp Object System: an Overview
– DeMichiel, Gabriel
- 1987
|
|
27
|
System design by composing structures of interacting objects
– Reenskaug, Anderson
- 1992
|
|
22
|
Metaclass compatibility
– Graube
- 1989
|
|
19
|
The Art of Growing Adaptive Object-Oriented Software
– Lieberherr
- 1995
|
|
16
|
When objects collide: Experiences with reusing multiple class hierarchies
– BERLIN
- 1990
|
|
14
|
Reflections on metaclass programming in SOM
– Danforth, Forman
- 1994
|
|
10
|
Flavors: message passing
– Weinreb, Moon
- 1980
|
|
7
|
CLOS in context - The shape of the design space
– Bobrow, Gabriel, et al.
- 1993
|
|
6
|
Behavioral Reflection in a Prototype-Based Language
– Malenfant, Dony, et al.
- 1992
|
|
6
|
Definition of a reflective kernel for a prototype-based language
– Mulet, Cointe
- 1993
|
|
2
|
Object-Oriented Programming: The CLOS Perspective" edited by Andreas Paepcke
– Kiczales, Ashley, et al.
- 1993
|
|
1
|
Separation of Concerns
– ursch, L, et al.
- 1995
|
|
1
|
R'eflexion & Langages `a prototypes
– Mulet
- 1995
|