|
ABSTRACT
In a system where classes are treated as first class objects, classes are defined as instances of other classes called metaclasses. An important benefit of using metaclasses is the ability to assign properties to classes (e.g. being abstract, being final, tracing particular messages, supporting multiple inheritance), independently from the base-level code. However, when both inheritance and instantiation are explicitly and simultaneously involved, communication between classes and their instances raises the metaclass compatibility issue. Some languages (such as SMALLTALK) address this issue but do not easily allow the assignment of specific properties to classes. In contrast, other languages (such as CLOS) allow the assignment of specific properties to classes but do not tackle the compatibility issue well.In this paper, we describe a new model of metalevel organization, called the compatibility model, which overcomes this difficulty. It allows safe metaclass programming since it makes it possible to assign specific properties to classes while ensuring metaclass compatibility. Therefore, we can take advantage of the expressive power of metaclasses to build reliable software. We extend this compatibility model in order to enable safe reuse and composition of class specific properties. This extension is implemented in NEOCLASSTALK, a fully reflective SMALLTALK.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
BC89
|
J.-P. Briot , P. Cointe, Programming with explicit metaclasses in Smalltalk-80, Conference proceedings on Object-oriented programming systems, languages and applications, p.419-431, October 02-06, 1989, New Orleans, Louisiana, United States
|
 |
BC90
|
|
| |
BFJR98
|
|
 |
BGL98
|
|
| |
BSLR96
|
Noury Bouraqadi-Sagdani, Thomas Ledou~, and Fred Rivard. Metaclass Composability. In ECOOP'96 workshop : "Composability Issues in Object Orientation", Linz, Austria, july 1996.
|
 |
Coi87
|
|
| |
DF94a
|
Scott Danforth and Ira R. Forman. Derived Metaclasses in SOM. In Proceedings of TOOLS EUROPE'9~, pages 63-73, Versailles, France, 1994.
|
 |
DF94b
|
Scott Danforth , Ira R. Forman, Reflections on metaclass programming in SOM, Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, p.440-452, October 23-28, 1994, Portland, Oregon, United States
|
| |
DHH+95
|
Roland Ducournau, Michel Habib, Marianne Huchard, Marie-Laure Mugnier, and Amedeo Napoli. Le point sur l'hfiritage multiple. Techniques et Sciences Informatique, 14(3):309-345, 1995. (In french).
|
 |
DHHM94
|
R. Ducournau , M. Habib , M. Huchard , M. L. Mugnier, Proposal for a monotonic multiple inheritance linearization, Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, p.164-175, October 23-28, 1994, Portland, Oregon, United States
|
| |
Duc98
|
Stfiphane Ducasse. Evaluating Message Passing Control Techniques in SmalltMk. Journal of Object-Oriented Programming, 1998. to appear.
|
| |
GR83
|
|
 |
GraB9
|
|
| |
HL95
|
Waiter L. Htirsch and Cristina Videira Lopes. Separation of Concerns. Technical Report NU-CCS-95-03, College of Computer Science, Northeastern University, Boston, MA, February 1995.
|
| |
KAJ+93
|
Gregor Kiczales , J. Michael Ashley , Luis H. Rodriguez, Jr. , Amin Vahdat , Daniel G. Bobrow, Metaobject protocols: why we want them and what else they can do, Object-oriented programming: the CLOS perspective, MIT Press, Cambridge, MA, 1993
|
| |
KdRB91
|
|
| |
KLM+97
|
Gregor Kicz~les John Lamping, Anur~g Mendhek~r, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, ~nd John Irwin. Aspect- Oriented Programming. In Mehmet Ak~it and Satoshi Matsuoka, editors, ECOOP'97, number 1241 in LNCS, pages 220-242. Springer-Verlag, June 1997.
|
| |
LC96
|
|
| |
Led98
|
Thomas Ledoux. Reflection and Distributed Systems : an Experiment with CORBA and Smalltalk. PhD thesis, Universit6 de Nantes, March 1998. (In french. R6flexion dans les syst~mes rfpartis ~ application 5~ CORBA et Smalltalk).
|
| |
Lie96
|
|
 |
Mae87
|
|
 |
MMC95
|
Philippe Mulet , Jacques Malenfant , Pierre Cointe, Towards a methodology for explicit composition of metaobjects, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.316-330, October 15-19, 1995, Austin, Texas, United States
|
| |
MY93
|
|
| |
Riv96
|
Fred Rivard. A New Smalltalk Kernel Allowing Both Explicit and Implicit Metalclass Programming. OOP- SLA'96, Workshop : Extending the Smalltalk Language, October 1996.
|
| |
Riv97
|
Fred Rivard. Object Behavioral Evolution Within Class Based Reflective Languages. PhD thesis, Universit6 de Nantes, June 1997. (In french, l~volution du Comportement des Objets dans les Langages 5~ Classes Rgflexifs).
|
| |
SKT96
|
|
| |
SOM93
|
IBM. SOMobjects Developer Toolkit Users Guide release 2.0, second edition, June 1993.
|
| |
Zim96
|
|
|