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

[img] Text
p774-verwaest.pdf - Published Version
Restricted to registered users only
Available under License Publisher holds Copyright.

Download (2MB) | 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)


08 Faculty of Science > Institute of Computer Science (INF)
08 Faculty of Science > Institute of Computer Science (INF) > Software Composition Group (SCG)

UniBE Contributor:

Verwaest, Toon Wim Jan; Lienhard, Adrian and Nierstrasz, Oscar Marius


Association for Computing Machinery ACM




Factscience Import

Date Deposited:

04 Oct 2013 14:17

Last Modified:

12 Sep 2017 12:19

Publisher DOI:


Web of Science ID:




URI: (FactScience: 209613)

Actions (login required)

Edit item Edit item
Provide Feedback