English

CrossCode: Multi-level Visualization of Program Execution

Human-Computer Interaction 2023-06-14 v2

Abstract

Program visualizations help to form useful mental models of how programs work, and to reason and debug code. But these visualizations exist at a fixed level of abstraction, e.g., line-by-line. In contrast, programmers switch between many levels of abstraction when inspecting program behavior. Based on results from a formative study of hand-designed program visualizations, we designed CrossCode, a web-based program visualization system for JavaScript that leverages structural cues in syntax, control flow, and data flow to aggregate and navigate program execution across multiple levels of abstraction. In an exploratory qualitative study with experts, we found that CrossCode enabled participants to maintain a strong sense of place in program execution, was conducive to explaining program behavior, and helped track changes and updates to the program state.

Keywords

Cite

@article{arxiv.2304.03445,
  title  = {CrossCode: Multi-level Visualization of Program Execution},
  author = {Devamardeep Hayatpur and Haijun Xia and Daniel Wigdor},
  journal= {arXiv preprint arXiv:2304.03445},
  year   = {2023}
}

Comments

13 pages, 6 figures Submitted to CHI 2023: Conference on Human Factors in Computing Systems