Pinocchio: Bringing Reflection to Life with First-Class Interpreters

Verwaest, Toon; Bruni, Camillo; Gurtner, David; Lienhard, Adrian; Nierstrasz, Oscar (2010). Pinocchio: Bringing Reflection to Life with First-Class Interpreters. In: OOPSLA Onward! '10. Proceedings of the ACM international conference on Object oriented programming systems languages and applications (p. 774). New York: Association for Computing Machinery ACM 10.1145/1869459.1869522

Full text not available from this repository. (Request a copy)

To support development tools like debuggers, runtime systems need to provide a meta-programming interface to alter their semantics and access internal data. Reflective capabilities are typically fixed by the Virtual Machine (VM). Unanticipated reflective features must either be simulated by complex program transformations, or they require the development of a specially tailored VM. We propose a novel approach to behavioral reflection that eliminates the barrier between applications and the VM by manipulating an explicit tower of first-class interpreters. Pinocchio is a proof-of-concept implementation of our approach which enables radical changes to the interpretation of programs by explicitly instantiating subclasses of the base interpreter. We illustrate the design of Pinocchio through non-trivial examples that extend runtime semantics to support debugging, parallel debugging, and back-in-time object-flow debugging. Although performance is not yet addressed, we also discuss numerous opportunities for optimization, which we believe will lead to a practical approach to behavioral reflection.

Item Type: Conference or Workshop Item (Paper)
Division/Institute: 08 Faculty of Science > Institute of Computer Science (INF)
UniBE Contributor: Verwaest, Toon Wim Jan; Lienhard, Adrian and Nierstrasz, Oscar Marius
Publisher: Association for Computing Machinery ACM
Language: English
Submitter: Factscience Import
Date Deposited: 04 Oct 2013 14:17
Last Modified: 08 Jun 2016 10:23
Publisher DOI: 10.1145/1869459.1869522
Web of Science ID: 000286595800047
URI: (FactScience: 209613)

Actions (login required)

Edit item Edit item
Provide Feedback