Skip to main content

Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and without Compromises

Marr, Stefan and Seaton, Chris and Ducasse, Stéphane (2015) Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and without Compromises. In: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI Programming Language Design and Implementation . ACM, New York, USA, pp. 545-554. ISBN 978-1-4503-3468-6. (doi:10.1145/2737924.2737963)

PDF - Author's Accepted Manuscript
Download (344kB) Preview
[img]
Preview
Official URL
http://doi.org/10.1145/2737924.2737963

Abstract

Runtime metaprogramming enables many useful applications and is often a convenient solution to solve problems in a generic way, which makes it widely used in frameworks, middleware, and domain-specific languages. However, powerful metaobject protocols are rarely supported and even common concepts such as reflective method invocation or dynamic proxies are not optimized. Solutions proposed in literature either restrict the metaprogramming capabilities or require application or library developers to apply performance improving techniques. For overhead-free runtime metaprogramming, we demonstrate that dispatch chains, a generalized form of polymorphic inline caches common to self-optimizing interpreters, are a simple optimization at the language-implementation level. Our evaluation with self-optimizing interpreters shows that unrestricted metaobject protocols can be realized for the first time without runtime overhead, and that this optimization is applicable for just-in-time compilation of interpreters based on meta-tracing as well as partial evaluation. In this context, we also demonstrate that optimizing common reflective operations can lead to significant performance improvements for existing applications.

Item Type: Book section
DOI/Identification number: 10.1145/2737924.2737963
Subjects: Q Science > QA Mathematics (inc Computing science)
Divisions: Faculties > Sciences > School of Computing
Depositing User: Stefan Marr
Date Deposited: 06 Oct 2017 15:07 UTC
Last Modified: 23 Sep 2019 11:55 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/63826 (The current URI for this page, for reference purposes)
Marr, Stefan: https://orcid.org/0000-0001-9059-5180
  • Depositors only (login required):

Downloads

Downloads per month over past year