31.7.09

 

Mirrors: design principles for meta-level facilities of object-oriented programming languages

Mirrors: design principles for meta-level facilities of object-oriented programming languages, by Gilad Bracha and David Ungar.
We identify three design principles for reflection and metaprogramming facilities in object oriented programming languages. Encapsulation: meta-level facilities must encapsulate their implementation. Stratification: meta-level facilities must be separated from base-level functionality. Ontological correspondence: 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 mirrors are characterized by adherence to these three principles. Consequently, mirror-based architectures have significant advantages with respect to distribution, deployment and general purpose metaprogramming.
One of the best OO design papers I have read. I'm convinced, mirrors are the way to reflect; I'm particularly struck by their importance for capability-based security.

For those of you that don't have ACM access, here is another link.

Comments:
IMHO one of the best possible framework for reflection is first-class environnements.
May be it's a bit too reflexive for its own good but the "Rascal" language by Suresh Jagannathan is an excellent language-toolbox design.
 
Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?