EngineeringProgram AnalysisLanguage InteroperabilityFormal MethodsSoftware AnalysisSoftware EngineeringCode RobustnessSoftware Language EngineeringObject-oriented ProgrammingComputer ScienceMeta-level ApiMetacircular InterpretationMetaprogrammingExtensible LanguageFormal VerificationSoftware Design
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.
11
The art of the metaobject protocol
Choice Reviews Online · 1992 · 1K citations
David Ungar, Randall B. Smith · 1987 · 903 citations
Gilad Bracha, David Griswold · 1993 · 175 citations
Gilad Bracha, David Ungar · 2004 · 167 citations
Éric Tanter, Jacques Noyé, Denis Caromel et al. · 2003 · 110 citations
Engineering, Software Engineering, Behavioral Reflection +18