|
ABSTRACT
We identify three design principles for reflection and metaprogramming facilities in object oriented programming languages. <i>Encapsulation</i>: meta-level facilities must encapsulate their implementation. <i>Stratification</i>: meta-level facilities must be separated from base-level functionality. <i>Ontological correspondence</i>: the ontology of meta-level facilities should correspond to the ontology of the language they manipulate. Traditional/mainstream reflective architectures do not follow these precepts. In contrast, reflective APIs built around the concept of <i>mirrors</i> are characterized by adherence to these three principles. Consequently, mirror-based architectures have significant advantages with respect to distribution, deployment and general purpose metaprogramming.
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.
 |
1
|
Ole Agesen , Stephen N. Freund , John C. Mitchell, Adding type parameterization to the Java language, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.49-65, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
2
|
|
| |
3
|
|
| |
4
|
Annotation Processing Tool Home Page . http://java.sun.com/j2se/1.5.0/docs/guide/apt/
|
| |
5
|
Lars Bak, Gilad Bracha, Steffen Grarup, Robert Griesemer, David Griswold and Urs Hölzle. Mixins in Strongtalk. ECOOP Workshop on Inheritance, June 2002.
|
| |
6
|
Gilad Bracha. The Strongtalk Type System for Smalltalk, September 1996. OOPSLA Workshop on Extending the Smalltalk Language.
|
 |
7
|
|
 |
8
|
Gilad Bracha , David Griswold, Strongtalk: typechecking Smalltalk in a production environment, Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications, p.215-230, September 26-October 01, 1993, Washington, D.C., United States
|
| |
9
|
Gilad Bracha and David Griswold. Extending Smalltalk with Mixins, September 1996. OOPSLA Workshop on Extending the Smalltalk Language.
|
| |
10
|
Soren Brandt and Rene Schmidt. Dynamic Reflection for a Statically Typed Language. Technical Report PB-505. Department of Computer Science, Aarhus University, June 1986
|
 |
11
|
|
 |
12
|
Shigeru Chiba, A metaobject protocol for C++, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.285-299, October 15-19, 1995, Austin, Texas, United States
|
| |
13
|
|
| |
14
|
Krzysztof Czarnecki and Ulrich W. Eisenecker. Generative Programming. Addison-Wesley, Reading, Massachusetts, 2000.
|
| |
15
|
|
| |
16
|
|
| |
17
|
Javadoc Tool Home Page. http://java.sun.com/j2se/javadoc/.
|
| |
18
|
|
 |
19
|
Sheng Liang , Gilad Bracha, Dynamic class loading in the Java virtual machine, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.36-44, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
20
|
|
| |
21
|
Ole Lehrmann Madsen. Keynote address. OOPSLA, November 2002.
|
| |
22
|
|
 |
23
|
|
| |
24
|
Mjolner Informatics. The Mjolner System: Metaprogramming System. Available at http://www.mjolner.com/mjolner-system/yggdrasil_en.php
|
| |
25
|
|
| |
26
|
|
| |
27
|
Self Programming Language Homepage. http://research.sun.com/research/self/
|
 |
28
|
|
| |
29
|
Sun Microsystems. Java Platform Debugger Architecture. http://java.sun.com/products/jpda/.
|
| |
30
|
Sun Microsystems. A Metadata Facility for the Java™ Programming Language. http://www.jcp.org/aboutJava/communityprocess/review/jsr175/
|
| |
31
|
|
 |
32
|
David Ungar, Annotating objects for transport to other worlds, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.73-87, October 15-19, 1995, Austin, Texas, United States
|
 |
33
|
David Ungar , Randall B. Smith, Self: The power of simplicity, Conference proceedings on Object-oriented programming systems, languages and applications, p.227-242, October 04-08, 1987, Orlando, Florida, United States
|
| |
34
|
Allen Wirfs-Brock, Juanita Ewing, Harold Williams and Brian Wilkerson. A Declarative Model for Defining Smalltalk Programs, October 1996. Invited talk at OOPSLA 96; available at http://www.smalltalksystems.com/~awss97/index.htm.
|
| |
35
|
|
| |
36
|
Roel Wuyts, A Logic Meta - Programming Approach to Support the Co - Evolution of Object - Oriented Design and Implementation, Ph.D. thesis, Vrije Universiteit Brussel, 2001.
|
| |
37
|
Roel Wuyts and Stéphane Ducasse, Symbiotic Reflection between an Object - Oriented and a Logic Programming Language, in ECOOP 2001 International workshop on MultiParadigm Programming with Object - Oriented Languages, 2001.
|
CITED BY 12
|
|
Sergei Kojarski , David H. Lorenz, AOP as a first class reflective mechanism, Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 24-28, 2004, Vancouver, BC, CANADA
|
|
|
|
|
|
David Ungar , Adam Spitz , Alex Ausch, Constructing a metacircular Virtual machine in an exploratory programming environment, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
|
|
|
|
|
|
|
|
Frank Eliassen , Eli Gjørven , Viktor S. Wold Eide , Jørgen Andreas Michaelsen, Evolving self-adaptive services using planning-based reflective middleware, Proceedings of the 5th workshop on Adaptive and reflective middleware (ARM '06), p.1, November 27-December 01, 2006, Melbourne, Australia
|
|
|
Stijn Mostinckx , Tom Van Cutsem , Stijn Timbermont , Éric Tanter, Mirages: behavioral intercession in a mirror-based architecture, Proceedings of the 2007 symposium on Dynamic languages, October 22-22, 2007, Montreal, Quebec, Canada
|
|
|
|
|
|
Johannes Oudenstad , Frank Eliassen , Eli Gjørven , Romain Rouvoy, Peer-to-peer brokering of planning meta-data, Proceedings of the 6th international workshop on Adaptive and reflective middleware: held at the ACM/IFIP/USENIX International Middleware Conference, p.1-3, November 26-30, 2007, Newport Beach, CA
|
|
|
|
|
|
|
|
|
|
|