Metaobject protocols: why we want them and what else they can do

@inproceedings{Kiczales1993MetaobjectPW,
  title={Metaobject protocols: why we want them and what else they can do},
  author={Gregor Kiczales and J. Michael Ashley and Luis Rodriguez and Amin Vahdat and Daniel G. Bobrow},
  year={1993}
}
All rights reserved. No part of this book may be reproduced in any form by any electronic or mechanical means (including photocopying, recording, or information storage and retrieval) without permission in writing from the publisher. Originally conceived a s a n e at idea that could help solve problems in the design and implementation of CLOS, the metaobject protocol framework now appears to have applicability to a wide range of problems that come up in high-level languages. This chapter… Expand
Towards a methodology for explicit composition of metaobjects
TLDR
This paper proposes a first methodologies aiming at the design of composable metaobjects, given two independently developed reflective customizations, and proposes principles to be observed in their design such that they can be composed using standard base-level aggregation or specialization. Expand
Concept-Oriented Programming
TLDR
A new programming construct is introduced, called concept, which generalizes conventional classes and concept inclusion relation generalizing class inheritance and allows programmers to describe two sides of any program: explicitly used functions of objects and intermediate functionality of references having cross-cutting nature and executed implicitly behind the scenes during object access. Expand
Generalizers: New Metaobjects for Generalized Dispatch
TLDR
A new metaobject is introduced, the generalizer, which complements the existing specializer metaobject, and this metaobject allows for the efficient implementation of complex non-class-based dispatch within the framework of existing metaobject protocols. Expand
An architecture for interpreted dynamic object-oriented languages
TLDR
A new interpretive implementation architecture is proposed that meets the requirements of code and system portability, execution performance, static and dynamic memory eeciency as well as language interoperability and the implementation demonstrates the feasibility and eeec-tiveness of the proposed architecture. Expand
How and why to encapsulate class trees
TLDR
A rationale and a general metaobject protocol design that encapsulates whole class trees and enhances information hiding and makes it easier both to evolve a system and to configure system variants. Expand
Towards a new model of abstraction for the engineering o f software
TLDR
The current view of abstraction in software engineering is talked about: how the authors use it, what the principles are,What the terminology is and what it does for us. Expand
Finite Element Kernel with Metaobject Protocol
TLDR
This chapter presents an alternative approach to the design of numerical software exemplified by a finite element system that has the ability to express commonalities between algorithmic structures and the explicit treatment of the dependency between metadata and data involved in the computation. Expand
From (Meta) Objects to Aspects: A Java and AspectJ Point of View
TLDR
This tour is the opportunity to discuss how the AspectJ model answers some of the issues raised by post-object oriented programming but also to enforce the relationship between reflective and aspect-oriented languages. Expand
A Reeective M O D El for First Class Dependencies
We propose a re ective model to express and to automatically manage dependencies between objects. This model describes re ective facilities which enable the changing of language semantics. AlthoughExpand
Will we think in programming languages?
  • J. Fiser
  • Computer Science
  • Acta Informatica Pragensia
  • 2012
TLDR
The article discuss one partial solution — implementation of domain specific languages in the heart of existing universal languages by mechanisms of metaprogramming, which overcomes limitations of classical programming languages and complexity of creation new languages from scratch. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 25 REFERENCES
Coarse-Grained Parallelism Using Metaobject Protocols
TLDR
This thesis presents Anibus, a metaobject protocol-based compiler, a model of the compiler's parallelization strategy that provides the knowledge necessary to augment the strategy incrementally, without exposing arbitrary or irrelevant implementation details. Expand
The art of the Metaobject Protocol
TLDR
A new approach to programming language design is presented, which resolves fundamental tensions between elegance and efficiency, and a metaobject protocol is presented that gives users the ability to incrementally modify the language's behavior and implementation. Expand
PRELUDE: A System for Portable Parallel Software
TLDR
PRELUDE supports methodology for designing and organizing parallel programs that makes them easier to tune for particular architectures and to port to new architectures, and includes novel migration mechanisms for computations based on a form of continuation passing. Expand
Issues in the Design and Documentation of Class Libraries
TLDR
Speci cation of the CLOS Metaobject Protocol required a combination of new and existing techniques to address issues, and a discussion of their relation to the underlying issues is discussed. Expand
Towards a new model of abstraction in software engineering
  • G. Kiczales
  • Computer Science
  • Proceedings 1991 International Workshop on Object Orientation in Operating Systems
  • 1991
TLDR
The author has developed a new model of abstraction, which he calls the two-view approach; the first view is the traditional one, it provides the functionality of the abstraction, the second view allows the user to participate in some implementation decisions. Expand
Concepts and Experiments in Computational Reflection
TLDR
An original experiment to introduce a reflective architecture in an object-oriented language is described and the new programming style made possible and examples show that a lot of programming problems that were previously handled on an ad hoc basis, can in a reflective Architecture be solved more elegantly. Expand
Quasi-static scoping: sharing variable bindings across multiple lexical scopes
TLDR
This paper adds quasi-static scoping to Scheme and shows how to build the aforementioned facilities at the user-level, and shows that quasi- static scoping can be implemented efficiently. Expand
CommonLoops: Merging Lisp and Object-Oriented Programming
TLDR
It is argued that CommonLoops' small kernel is powerful enough to implement the major object-oriented systems in use today, and its extensive use of meta-objects make practical both efficient implementation and experimentation with new ideas for object- oriented programming. Expand
Coarse-grain parallel programming in Jade
TLDR
Jade is presented, a language which allows a programmer to easily express dynamic coarse-grain parallelism and can significantly reduce the time and effort required to develop and maintain a parallel version of an imperative application with serial semantics. Expand
Efficient method dispatch in PCL
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercialExpand
...
1
2
3
...