Journal of Information Processing
Online ISSN : 1882-6652
ISSN-L : 1882-6652
An Approach to Collecting Object Graphs for Data-structure Live Programming Based on a Language Implementation Framework
Shusuke TakahashiYusuke IzawaHidehiko MasuharaYouyou Cong
Author information

2022 Volume 30 Pages 451-463


Data-structure live programming environments execute programs, collect object graphs (objects and their mutual references) created and modified during the execution, and visualize the graphs as a node-link diagram. Existing implementations collect object graphs by instrumenting checkpoints, at which the system traverses reachable objects, at every necessary point in the program. Since the cost of each checkpoint is proportional to the number of existing objects, the overhead of running checkpoints can be huge. This paper proposes (1) a technique to collect object graphs by recording object creation and modification events into an efficient data structure, and (2) an implementation design for the object graph collection mechanism by extending a language implemented on top of a language implementation framework. As a result, the overhead of object graph collection is almost proportional to the number of object creation/modification operations in total. We implemented the proposed mechanism for the Kanon data-structure live programming environment by extending GraalJS, a JavaScript implementation on the Graal/Truffle language implementation framework. We compared our new implementation against the original Kanon, which is based on checkpointing, and confirmed that our implementation improves program execution (and data collection) speed, and has sufficiently small overheads to reconstruct object graphs.

Related papers from these authors
© 2022 by the Information Processing Society of Japan
Previous article Next article