Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Concepts and experiments in computational reflection
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
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
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
The art of metaobject protocol
The art of metaobject protocol
Metaobject protocols: why we want them and what else they can do
Object-oriented programming
Analysis of inheritance anomaly in object-oriented concurrent programming languages
Research directions in concurrent object-oriented programming
Proposal for a monotonic multiple inheritance linearization
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Reflections on metaclass programming in SOM
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Smalltalk with style
Towards a methodology for explicit composition of metaobjects
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Concurrency and distribution in object-oriented programming
ACM Computing Surveys (CSUR)
Advances in Object-Oriented Metalevel Architectures and Reflection
Advances in Object-Oriented Metalevel Architectures and Reflection
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Explicit Metaclasses as a Tool for Improving the Design of Class Libraries
ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software
OpenCorba: A Reflective Open Broker
Reflection '99 Proceedings of the Second International Conference on Meta-Level Architectures and Reflection
Traits: A mechanism for fine-grained reuse
ACM Transactions on Programming Languages and Systems (TOPLAS)
Can programming be liberated from the two-level style: multi-level programming with deepjava
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
The Green language type system
Computer Languages, Systems and Structures
Computer Languages, Systems and Structures
Language support for adaptive object-models using metaclasses
Computer Languages, Systems and Structures
Uniform and safe metaclass composition
Computer Languages, Systems and Structures
From (meta) objects to aspects: a java and AspectJ point of view
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
Towards generative programming
UPP'04 Proceedings of the 2004 international conference on Unconventional Programming Paradigms
Safe metaclass composition using mixin-based inheritance
Computer Languages, Systems and Structures
Hi-index | 0.00 |
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.