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.



Evaluation and Usability of Programming Languages and Tools (PLATEAU)

Finally, a workshop on scientific evaluation of programming languages! Kudos to the organizers, and to Onward! and OOPSLA for serving as host.



The Thrilling Adventures of Lovelace and Babbage

Brilliant! By Sidney Padua. Other episodes available via the BBC. Spotted via Boing Boing.


Alligators, revisited

An implementation of Bret Victor's Oh no! Alligators! by Torsten Strobl. Thanks to Stefen Mazanek for bringing this to my attention.

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