ACM Home Page
Please provide us with feedback. Feedback
Mirrors: design principles for meta-level facilities of object-oriented programming languages
Full text PdfPdf (303 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Vancouver, BC, Canada
SESSION: Advanced design table of contents
Pages: 331 - 344  
Year of Publication: 2004
ISBN:1-58113-831-9
Also published in ...
Authors
Gilad Bracha  Sun Microsystems, Santa Clara, CA
David Ungar  Sun Microsystems, Mountain View, CA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 27,   Downloads (12 Months): 183,   Citation Count: 12
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1028976.1029004
What is a DOI?

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
 
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
 
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
 
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
 
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
33
 
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

Collaborative Colleagues:
Gilad Bracha: colleagues
David Ungar: colleagues