Proxies: design principles for robust object-oriented intercession APIs

Tom Van Cutsem, Mark Samuel Miller. Proxies: design principles for robust object-oriented intercession APIs. In DLS '10: Proceedings of the 6th symposium on Dynamic languages. ACM, New York, NY, USA, 2010. [doi]

Abstract

Proxies are a powerful approach to implement meta-objects in object-oriented languages without having to resort to metacircular interpretation. We introduce such a meta-level API based on proxies for Javascript. We simultaneously introduce a set of design principles that characterize such APIs in general, and compare similar APIs of other languages in terms of these principles. We highlight how principled proxy-based APIs improve code robustness by avoiding interference between base and meta-level code that occur in more common reflective intercession mechanisms.