The Shapes of Abstraction in Data Structure Diagrams
Devamardeep Hayatpur, Brian Hempel, Richard Lin, Haijun Xia
Abstract
Tools to inspect runtime state, like print statements and debuggers, are an essential part of programming. Yet, a major limitation is that they present data at a fixed, low level of abstraction which can overload the user with irrelevant details. In contrast, human drawings of data structures use many illustrative visual abstractions to show the most useful information. We attempt to bridge the gap by surveying 80 programmer-produced diagrams to develop a mechanical approach for capturing visual abstraction, termed abstraction moves. An abstraction move selects data objects of interest, and then revisualizes, simplifies, or annotates them. We implement these moves as a diagramming language for JavaScript code, named Chisel, and show that it can effectively reproduce 78 out of the 80 surveyed diagrams. In a preliminary study with four CS educators, we evaluate its usage and discover potential contexts of use. Our approach of mechanically moving between levels of abstraction in data displays opens the doors to new tools and workflows in programming education and software development.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 800f4c00-2b85-4258-a63d-ba2e02c2cc54Cited by top-tier papers3
- PaperBridge: Crafting Research Narratives through Human-AI Co-ExplorationRunhua Zhang, Yang Ouyang, Leixian Shen, Yuying Tang et al.UIST 2025 · 3 citations
- How Notations Evolve: A Historical Analysis with Implications for Supporting User-Defined AbstractionsJingyue Zhang, J. D. Zamfirescu-Pereira, Elena L. Glassman, Damien Masson et al.CHI 2026 · 2 citations
- Staring at Tables: Exploring Conceptual Data Modeling as a Rich Collaborative ActivityLaura Koesten, Daphne Miedema, Hsiang-Yun Wu, Mathias FunkCHI 2026 · 1 citation
Builds on6
- Penrose: from mathematical notation to beautiful diagramsKatherine Ye, Wode Ni, Max Krieger, Dor Ma'ayan et al.SIGGRAPH 2020 · 53 citations
- Projection Boxes: On-the-fly Reconfigurable Visualization for Live ProgrammingSorin LernerCHI 2020 · 52 citations
- Math Augmentation: How Authors Enhance the Readability of Formulas using Novel Visual Design PracticesAndrew Head, Amber Xie, Marti A. HearstCHI 2022 · 27 citations
- CrossCode: Multi-level Visualization of Program ExecutionDevamardeep Hayatpur, Daniel Wigdor, Haijun XiaCHI 2023 · 23 citations
- How Domain Experts Create Conceptual Diagrams and Implications for Tool DesignDor Ma'ayan, Wode Ni, Katherine Ye, Chinmay Kulkarni et al.CHI 2020 · 19 citations
Related papers
- Taking ASCII Drawings Seriously: How Programmers Diagram CodeDevamardeep Hayatpur, Brian Hempel, Kathy Chen, William Duan et al.CHI 2024 · 7 citations
- Supporting Visual Artists in Programming through Direct Inspection and Control of Program ExecutionJingyi Li, Joel Brandt, Radomír Mech, Maneesh Agrawala et al.CHI 2020 · 30 citations
- Effective Program Debloating via Reinforcement LearningKihong Heo, Woosuk Lee, Pardis Pashakhanloo, Mayur NaikCCS 2018 · 175 citations
- Nonvisual Support for Understanding and Reasoning about Data StructuresBrianna L. Wimer, Ritesh Kanchi, Kaija Frierson, Venkatesh Potluri et al.CHI 2026 · 2 citations
- Diagramming Program Values by Spatial RefinementSiddhartha Prasad, Michael Tu, Karan Kashyap, Tim Nelson et al.PLDI 2026
