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 (pp. 774-789). New York: Association for Computing Machinery ACM 10.1145/1869459.1869522
Text
p774-verwaest.pdf - Published Version Restricted to registered users only Available under License Publisher holds Copyright. Download (2MB) |
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) 08 Faculty of Science > Institute of Computer Science (INF) > Software Composition Group (SCG) [discontinued] |
UniBE Contributor: |
Verwaest, Toon Wim Jan, Lienhard, Adrian, Nierstrasz, Oscar |
Publisher: |
Association for Computing Machinery ACM |
Language: |
English |
Submitter: |
Factscience Import |
Date Deposited: |
04 Oct 2013 14:17 |
Last Modified: |
02 Mar 2023 23:20 |
Publisher DOI: |
10.1145/1869459.1869522 |
Web of Science ID: |
000286595800047 |
BORIS DOI: |
10.7892/boris.4955 |
URI: |
https://boris.unibe.ch/id/eprint/4955 (FactScience: 209613) |