Foundations of a live data exploration environment

02/14/2020
by   Tomas Petricek, et al.
0

Context: A growing amount of code is written to explore and analyze data, often by data analysts who do not have a traditional background in programming, for example by journalists. Inquiry: The way such data anlysts write code is different from the way software engineers do so. They use few abstractions, work interactively and rely heavily on external libraries. We aim to capture this way of working and build a programming environment that makes data exploration easier by providing instant live feedback. Approach: We combine theoretical and applied approach. We present the data exploration calculus, a formal language that captures the structure of code written by data analysts. We then implement a data exploration environment that evaluates code instantly during editing and shows previews of the results. Knowledge: We formally describe an algorithm for providing instant previews for the data exploration calculus that allows the user to modify code in an unrestricted way in a text editor. Supporting interactive editing is tricky as any edit can change the structure of code and fully recomputing the output would be too expensive. Grounding: We prove that our algorithm is correct and that it reuses previous results when updating previews after a number of common code edit operations. We also illustrate the practicality of our approach with an empirical evaluation and a case study. Importance: As data analysis becomes an ever more important use of programming, research on programming languages and tools needs to consider new kinds of programming workflows appropriate for those domains and conceive new kinds of tools that can support them. The present paper is one step in this important direction.

READ FULL TEXT
research
03/27/2018

Live Multi-language Development and Runtime Environments

Context: Software development tools should work and behave consistently ...
research
11/18/2021

Measuring source code conciseness across programming languages using compression

It is well-known, and often a topic of heated debates, that programs in ...
research
05/24/2022

ACL2s Systems Programming

ACL2 provides a systems programming capability that allows one to write ...
research
03/12/2023

Live, Rich, and Composable: Qualities for Programming Beyond Static Text

Efforts to push programming beyond static textual code have sought to im...
research
04/27/2023

SeeHow: Workflow Extraction from Programming Screencasts through Action-Aware Video Analytics

Programming screencasts (e.g., video tutorials on Youtube or live coding...
research
11/27/2019

Automated Generation of Computer Graded Unit Testing-Based Programming Assessments for Education

Automatic assessment of code, in particular to support education, is an ...
research
07/20/2023

Empirical Evaluation of a Live Environment for Extract Method Refactoring

Complex software can be hard to read, adapt, and maintain. Refactoring i...

Please sign up or login with your details

Forgot password? Click here to reset