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.

28.7.09

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.

9.7.09