An Interactive System for Data Structure Development

Abstract

Data structure algorithms are of fundamental importance in
teaching and software development, yet are difficult to understand.
We propose a new approach for understanding, debugging
and developing heap manipulating data structures.

The key technical idea of our work is to combine deep parametric
abstraction techniques emerging from the area of static
analysis with interactive abstraction manipulation. Our approach
bridges program analysis with HCI and enables new
capabilities not possible before: i) online automatic visualization
of the data structure in a way which captures its essential
operation, thus enabling powerful local reasoning, and ii) fine
grained pen and touch gestures allowing for interactive control
of the abstraction – at any point the developer can pause
the program, graphically interact with the data, and continue
program execution. These features address some of the most
pressing challenges in developing data structures.

We implemented our approach in a Java-based system called FluiEdt and evaluated it with 27 developers. The results indicate that FluidEdt is more effective in helping developers find data structure errors than existing state of the art IDEs (e.g. Eclipse) or pure visualization based approaches.